Я люблю окончательную форму. Это действительно помогло узнать, как использовать функции каррирования. Итак, пример, который вы взяли из окончательной формы, я лично использовал с полями.
composeValidators(required)(value)
Карри - это странная концепция, которую вы можете обойтись без необходимости, поэтому не волнуйтесь, не поняв ее с первого взгляда.
Давайте посмотрим на сигнатуру:
const composeValidators = (...validators) => (value) =>
Первая функция принимает X количество реквизитов или правил проверки. У вас есть эта часть вниз. Теперь вторая функция ожидает значение. Вы, наверное, видели, как он использовался с валидаторами Филда. Если вы посмотрите документацию для FieldProps (см. Ссылку ниже), вы увидите, что она принимает функцию и передает ей 3 аргумента, значение, все значения и мета, а не просто значение. Это может помочь вам написать лучшие правила проверки, которые учитывают больше информации о поле. В любом случае, когда финальная форма использует это, она принимает форму:
composeValidators(required)(value, allValues, meta)
Я не ожидаю, что это будет иметь смысл сразу, но это должно помочь вам подумать об одном конкретном случае использования каррирасширенные настройки. Наслаждайтесь окончательной формой!
https://final -form.org / docs / response-final-form / types / FieldProps