xenia13
@xenia13
Изучаю React JS.

Почему в Redux сохраняется только один символ?

Здравствуйте! У меня есть форма:

<form onSubmit={register}> 

          <input
            name="name"
            component="input"
            type="text"
            placeholder="Имя и фамилия"
            onChange={setName}
          />
  
</form>


В action:

export function setName(name) {
    return {
      type: 'SET_NAME',
      payload: name,
    }
  }


Получается написать только один символ, который сохраняется в store, но потом нужно начинать сначала.
Скажите, пожалуйста, как исправить эту ошибку?
  • Вопрос задан
  • 207 просмотров
Решения вопроса 1
@Dasslier
FrontEnd Developer
Когда прочитаете внимательно эту статью - вы должны все понять Управляемые компоненты

Сейчас вы делаете следующее: на событие onChange повесили action, как только вводите 1 символ в инпут, срабатывает action и меняет стейт в Redux. Redux обновляет состояние и ререндерит ваш компонент, и вы снова вводите символ и снова обновляете этим одним символом свой стейт в редаксе.
UPD: а нет, Redux вам не ререндерит, т.к. вы никак не используете введенное значение. В общем читайте статью и смотрите пример из песочницы

1) Не нужно хранить данные с инпута в Redux, храните его в локальном стейте класса
2) Все данные с формы должны собираться при отправке, в событии onSubmit

Вот пример управляемого компонента - клик

Но попытайтесь разобраться, а не тупо копировать, это очень важно
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@ant13
react-dev
5dca5eaeba59e343984271.jpeg
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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