Задать вопрос
vertically-challenged
@vertically-challenged

Как достать значение из Input при отправке формы, используя TypeScript?

Обычно на JS я делал так, но на TS оно не работает, выводится ошибка:

Element implicitly has an 'any' type because expression of type '0' can't be used to index type 'EventTarget'.
Property '0' does not exist on type 'EventTarget'


Вот так я пытаюсь достать value:
<form onSubmit={
      (event) => {
        event.preventDefault()
        console.log(event.target[0].value)
      }
    }>
  • Вопрос задан
  • 1329 просмотров
Подписаться 2 Простой 12 комментариев
Решения вопроса 2
Mesuti
@Mesuti
Значение input находится в state.
Берите его оттуда.

Если была бы обычная верстка, то console.log(event.target['test'].value) (данный пример от Вадим)
А Вы используете реакт, поэтому все значения берутся из состояний, верстка только для отрисовки

<form onSubmit={
    (event) => {
        event.preventDefault()
        console.log(inputCityValue)
    }
}>
    <Input value={inputCityValue} onChange={onChangeHandlerWrapper(setInputCityValue)}/>
    <button type='submit'><span>Обновить данные</span></button>
</form>
Ответ написан
Комментировать
vertically-challenged
@vertically-challenged Автор вопроса
const dispatch = useDispatch()
  const city = useSelector((state: TRootState) => state.city)
  const [inputCityValue, setInputCityValue] = useState(city)

  return (
    <form onSubmit={
      (event) => {
        event.preventDefault()
        dispatch(setCity(inputCityValue))
      }
    }>
      <p>{city}</p>
      <Input name={'test'} value={inputCityValue} onChange={onChangeHandlerWrapper(setInputCityValue)}/>
      <button type='submit'><span>Обновить данные</span></button>
    </form>
  )
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы