Проверка динамического поля Ant Design

Я пытаюсь создать динамический валидатор поля - когда "isDisable" истинно, это не требуется + нет необходимости проверять тип номера.

{getFieldDecorator('number', {
  validateFirst: true,
  rules: [{
    required: !isDisable,
    message: 'Must enter data'
  }, {
    type: 'number',
    message: 'Need to enter number'
  }]
})(
  <InputNumber min={0} step={1} disabled={isDisable} />
)}

Но этот код по-прежнему проверяет тип номера.

Я также пробовал это в функции рендеринга:

const rules = isDisable ? { } : {
  validateFirst: true,
  rules: [{
    required: true,
    message: 'Must enter data'
  }, {
    type: 'number',
    message: 'Need to enter number'
  }]
};

{getFieldDecorator('number', rules)(
  <InputNumber min={0} step={1} disabled={isDisable} />
)}

Но при вводе данных валидатор появляется только тогда, когда вызывается функция «validateFieldsAndScroll», и я хочу, чтобы она проверяла событие onChange.

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

Благодарить.


person liron_e    schedule 06.02.2017    source источник


Ответы (1)


Как насчет этого:

const allFields = ['a', 'b', 'c'];
const fields = allFields.filter(disabledField);
this.props.form.validateFields(fields, () => {...})
person benjycui    schedule 08.02.2017
comment
Спасибо! Я также обнаружил, что если вы установите значение поля как undefined, валидатор не будет его проверять. - person liron_e; 09.02.2017