Задать вопрос
Guedda
@Guedda
Начинающий front-end разработчик

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

Добрый день, уважаемые.
Возник вопрос. Чтобы кусками код не вставлять, вставлю песочный-проект, чтобы Вы смогли его увидеть полностью и протестировать. Вот он
Ситуация следующая: выбираем в Select "One", в появившихся инпутах пишем что-либо, после нажимаем на Add, и всё, что мы вписали, исчезает. Что я делаю не так? Мучаюсь уже несколько дней.
Заранее благодарен за ответы.
  • Вопрос задан
  • 181 просмотр
Подписаться 1 Оценить 2 комментария
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    React-разработчик
    3 месяца
    Далее
  • Нетология
    Frontend-разработка на React
    10 недель
    Далее
  • Академия Eduson
    React-разработчик
    2 месяца
    Далее
Пригласить эксперта
Ответы на вопрос 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. сам код в рамках этого вопроса не обсуждаем, я вашей задумки не понял, мне кажется слишком сложно написано.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
от 250 000 до 300 000 ₽
IT ATLAS Москва
от 200 000 до 250 000 ₽