2017-02-06 100 views
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事件

所以,我怎麼能創建一個規則,如果該字段被禁用,則不檢查該類型?

謝謝。

回答

0

如何:

const allFields = ['a', 'b', 'c']; 
const fields = allFields.filter(disabledField); 
this.props.form.validateFields(fields,() => {...}) 
+0

謝謝! 我還發現,如果您將該字段的值設置爲undefined,驗證器將不會檢查它。 –