經過 Form.create
包裝的組件將會自帶 this.props.form
屬性,this.props.form
提供的 API 如下:
注意:使用
getFieldsValue
getFieldValue
setFieldsValue
等時,應確保對應的 field 已經用getFieldDecorator
注冊過了。
方法 | 說明 | 類型 |
---|---|---|
getFieldDecorator | 用於和表單進行雙向綁定,詳見下方描述 | |
getFieldError | 獲取某個輸入控件的 Error | Function(name) |
getFieldsError | 獲取一組輸入控件的 Error ,如不傳入參數,則獲取全部組件的 Error | Function([names: string[]]) |
getFieldsValue | 獲取一組輸入控件的值,如不傳入參數,則獲取全部組件的值 | Function([fieldNames: string[]]) |
getFieldValue | 獲取一個輸入控件的值 | Function(fieldName: string) |
isFieldsTouched | 判斷是否任一輸入控件經歷過 getFieldDecorator 的值收集時機 options.trigger |
(names?: string[]) => boolean |
isFieldTouched | 判斷一個輸入控件是否經歷過 getFieldDecorator 的值收集時機 options.trigger |
(name: string) => boolean |
isFieldValidating | 判斷一個輸入控件是否在校驗狀態 | Function(name) |
resetFields | 重置一組輸入控件的值(為 initialValue )與狀態,如不傳入參數,則重置所有組件 |
Function([names: string[]]) |
setFields | 設置一組輸入控件的值與錯誤狀態:代碼 | ({ [fieldName]: {value: any, errors: [Error] } }) => void |
setFieldsValue | 設置一組輸入控件的值(注意:不要在 componentWillReceiveProps 內使用,否則會導致死循環,原因) |
({ [fieldName]: value }) => void |
validateFields | 校驗並獲取一組輸入域的值與 Error,若 fieldNames 參數為空,則校驗全部組件 | ( [fieldNames: string[]], [options: object], callback(errors, values) ) => void |
validateFieldsAndScroll | 與 validateFields 相似,但校驗完后,如果校驗不通過的菜單域不在可見范圍內,則自動滾動進可見范圍 |
參考 validateFields |
validateFields/validateFieldsAndScroll
const { form: { validateFields } } = this.props; validateFields((errors, values) => { // ... }); validateFields(['field1', 'field2'], (errors, values) => { // ... }); validateFields(['field1', 'field2'], options, (errors, values) => { // ... });