Должны ли мы хранить необработанные или проанализированные значения в состоянии формы

Вступление:

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

Случай 1:

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

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

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

Случай 2:

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

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


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

Необработанные значения onChange, которые могут быть проанализированы, когда они используются?

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

2 ответа

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

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

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

Другие вопросы по тегам