Должны ли мы хранить необработанные или проанализированные значения в состоянии формы - PullRequest
0 голосов
/ 07 сентября 2018

Введение:

  • мы используем formik или final-form в качестве менеджера форм в реакции
  • мы получаем сущность из API
  • нам нужно отобразить эту сущность для редактирования значений формы

Дело 1:

  • сущность имеет свойство даты ISO
  • мы используем средство выбора даты, чье onChange возвращает объект даты JS

Что мы должны хранить в состоянии формы: дата ISO (строка) или дата JS (объект)?

Если мы храним дату ISO, анализ должен выполняться в обработчике onChange.

Дело 2:

  • сущность имеет логическое свойство
  • мы используем элемент select, для которого onChange возвращает строку

Что мы должны хранить в состоянии формы: true (логическое значение) или «true» (строка)?


Общий вопрос: что хранить в состоянии формы?

Необработанные значения onChange, которые можно анализировать при их использовании?

Или лучше убедиться, что средства выбора даты всегда возвращают дату ISO или неопределенную, что логические поля всегда возвращают логическое значение или неопределенное и т. Д.

Ответы [ 2 ]

0 голосов
/ 10 сентября 2018

Я думаю, это действительно не так важно. В моих библиотеках redux-form и final-form есть функции parse / format для управления преобразованием в состояние формы и обратно. Вы можете использовать их, и тогда вам не нужно будет преобразовывать их при отправке, или сохранять их в структуре, которую ваш входной компонент хочет до отправки, а затем преобразовывать. Я полагаю, что последний будет технически быстрее, так как не потребует двух преобразований на каждое изменение.

Я часто пользуюсь react-rte, редактором wysiwyg, и конвертирую необработанный формат в уценку в состоянии формы при каждом нажатии клавиши, и это довольно быстро, так что ... я думаю, что это зависит от того, что кажется вам более правильным. ⚖️

0 голосов
/ 07 сентября 2018

Случай 1: я сохранил всю дату как JS date, и если мне нужно, то я преобразую в iso.
Случай 2: Boolean (OnChange ())

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...