Разница между обратными вызовами `normalize` и` parse` в редукционной форме

текущая документация по сокращению форматов (версия 6.5.0 на момент написания этой статьи) упоминает 2 обратных вызова для объекта Field: normalize и parse.

Оба описания звучат довольно похоже: они принимают значение, введенное пользователем в поле ввода, и преобразуют его в значение, хранящееся в сокращении.

Какая разница между этими двумя обратными вызовами?

Ответ 1

По сути, две функции выполняют точно то же самое, т.е. принимают value пользователь имеет вход в Field и преобразует его перед сохранением в хранилище редукции.

Различия заключаются в аромате этих функций и порядок в которые они называются:

  • parse анализирует входное значение строки, чтобы преобразовать его в тип, который вы хотите сохранить в хранилище redux, например, вы анализируете строку даты из datepicker в объект Date
  • normalize подразумевается принудительное форматирование входных значений в магазине redux, например, чтобы сохранить номера телефонов в едином формате

Когда дело доходит до порядка, в котором эти методы вызывают в жизненном цикле значения redux-form: parse вызывается до normalize, что означает, что normalize вызывается с разобранным входным значением.

Короче говоря, используйте parse для преобразования пользовательского ввода (обычно в виде строки) в тип, соответствующий вашим потребностям. Используйте normalize для принудительного применения определенного формата ввода для пользователя.

Надеюсь, это поможет!