Почему вход не синхронизируется с состоянием в React? - PullRequest
0 голосов
/ 25 сентября 2018

Я делаю генератор форм, который использует схему JSON для построения формы, и я столкнулся с проблемой.

Если я делаю контролируемый ввод и вызываю метод getForms (метод, который генерирует форму) для каждого рендера, он обновляет значение ввода из состояния, как и ожидалось.

Отлично.Но я не хочу, чтобы алгоритм, который генерирует форму из схемы JSON, вызывался при каждом рендеринге.

Я пытался сохранить форму в переменной класса или в состоянии, но он не работал должным образом,При изменении ввода состояние обновляется корректно, но оно не обновляет ввод формы.

Вот пример моей проблемы: https://codesandbox.io/embed/q8zl5p9x5q

Редактировать: при изучении объекта есть только одно отличие - свойство owner не устанавливается, когда я рендерим элемент ввода из переменной.Может ли это быть?

Что мне нужно, так это то, что я сгенерирую форму только один раз, поскольку за ней стоит сложная логика, это будет ударом производительности, который необходим для запуска ее при каждом нажатии клавиши, а затем обновлять просто их значения от государства.

Значение не важно, когда вызывается метод getForms.Мне просто нужно быть равным состоянию, в котором изменен вход.

Пока только те вещи, которые приходят мне в голову, используют ссылки и клонируют элемент с React.cloneElement и добавляют состояние к значению.

...