Guedda
@Guedda
Начинающий front-end разработчик

Почему при добавлении Input теряются введенные данные в других Inputs?

Добрый день, уважаемые.
Возник вопрос. Чтобы кусками код не вставлять, вставлю песочный-проект, чтобы Вы смогли его увидеть полностью и протестировать. Вот он
Ситуация следующая: выбираем в Select "One", в появившихся инпутах пишем что-либо, после нажимаем на Add, и всё, что мы вписали, исчезает. Что я делаю не так? Мучаюсь уже несколько дней.
Заранее благодарен за ответы.
  • Вопрос задан
  • 149 просмотров
Пригласить эксперта
Ответы на вопрос 1
maxfarseer
@maxfarseer
https://maxpfrontend.ru, обучаю реакту и компании
Ситуация следующая:
По кнопке add вызывается функция addPropertiesToArray, вы внутри в newArrays имеете: {Registrations:2} и это устанавливаете в state.

После изменения state, само собой вызывается метод render, внутри которого у вас вызывается функция propertiesParser

Это функция идет по properties и отрисовывает заметку. У вас в этот момент нет никакой информации, что было введено в inputs, вы это никуда не сохранили, а ре-рендер вызвали (так как state изменили в addPropertiesToArray), следовательно ваши MyInput компоненты отрисовались с пустым значением (вы, в разметке так и указываете value='' => то есть value = пустая строка).

Чтобы у вас сохранялись введенные значения, вам нужно их где-то хранить. В вашем случае, я бы хранил их в state, и в input'ax брал бы эти значения. Само собой, в функции addPropertiesToArray, эти бы значения в стейт и добавлял.

p.s. сам код в рамках этого вопроса не обсуждаем, я вашей задумки не понял, мне кажется слишком сложно написано.
Ответ написан
Ваш ответ на вопрос

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

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