0

我正在尝试创建动态字段验证器 - 当“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 事件

那么,如果该字段被禁用,我如何创建一个不检查类型的规则呢?

感谢。

4

1 回答 1

1

这个怎么样:

const allFields = ['a', 'b', 'c'];
const fields = allFields.filter(disabledField);
this.props.form.validateFields(fields, () => {...})
于 2017-02-08T02:15:56.870 回答