經過 Form.create 包裝的組件將會自帶 this.props.form 屬性,this.props.form 提供的 API 如下:
注意:使用
getFieldsValuegetFieldValuesetFieldsValue等時,應確保對應的 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) => { // ... });
