Форма Redux: проверка NumberInput с аргументом из компонентов компонентов - PullRequest
0 голосов
/ 03 января 2019

Я использую Redux-Form v.7.3.0 и хочу проверить Поле NumberInput с номером, который хранится в состоянии, а также в подпорках моего компонента, который содержит это Поле.

Этомое поле:

<Field
   name={MyCompononent.stackabilityName}
   component={NumberInput}
   validate={checkIfInsertedValueIsSmallerThan(this.props.stackability)}
   normalize={notNegativeAndToInteger}
/>

И я хочу, чтобы что-то было в документации здесь Документация по проверке поля

Это интересная часть:

const minValue = min => value => value && value < min ? `Must be at least ${min}` : undefined

Где это используется таким образом внутри «валидной» опоры моего Поля: minValue (5).Я не хочу этого достигать.Я хочу извлечь что-то из состояния / реквизита моего компонента, где расположен компонент Field, чтобы динамически вставить минимальное значение.

Я надеюсь, что есть какой-то элегантный способ сделать это.Спасибо за вашу помощь!

1 Ответ

0 голосов
/ 08 января 2019

Как упомянуто в документации , когда вы передаете функцию своей validate опоре компонента <Field>, эта функция получает следующие параметры:

customValidator(value, allValues, props, name)
// value: The current value of the field
// allValues: The values of the entire form
// props: Any props passed to the form
// name: Field name provided

Так что в вашем случае вы можете просто сделать это:

<Field
   name={MyCompononent.stackabilityName}
   component={NumberInput}
   validate={checkIfInsertedValueIsSmallerThan}
   normalize={notNegativeAndToInteger}
/>

const checkIfInsertedValueIsSmallerThan = (value, allValues, props, name) => {
   const stackability = props.stackability;
   // do something...
   return error;
}
...