Я делаю генератор форм, который использует схему JSON для построения формы, и я столкнулся с проблемой.
Если я делаю контролируемый ввод и вызываю метод getForms
(метод, который генерирует форму) для каждого рендера, он обновляет значение ввода из состояния, как и ожидалось.
Отлично.Но я не хочу, чтобы алгоритм, который генерирует форму из схемы JSON, вызывался при каждом рендеринге.
Я пытался сохранить форму в переменной класса или в состоянии, но он не работал должным образом,При изменении ввода состояние обновляется корректно, но оно не обновляет ввод формы.
Вот пример моей проблемы: https://codesandbox.io/embed/q8zl5p9x5q
Редактировать: при изучении объекта есть только одно отличие - свойство owner не устанавливается, когда я рендерим элемент ввода из переменной.Может ли это быть?
Что мне нужно, так это то, что я сгенерирую форму только один раз, поскольку за ней стоит сложная логика, это будет ударом производительности, который необходим для запуска ее при каждом нажатии клавиши, а затем обновлять просто их значения от государства.
Значение не важно, когда вызывается метод getForms
.Мне просто нужно быть равным состоянию, в котором изменен вход.
Пока только те вещи, которые приходят мне в голову, используют ссылки и клонируют элемент с React.cloneElement
и добавляют состояние к значению.