/** * Created by kisnows on 2016/12/26. */ import * as React from 'react'; export declare const enum STATUS { Init = "Init", Normal = "Normal", FieldChange = "FieldChange", UpdateFormDataStructure = "UpdateFormDataStructure", Submit = "Submit" } export interface FormFields extends React.ReactElement { data: object; } export interface FormProps { } export interface FormState { isComplete: boolean; isValidate: boolean; errorMsgList: Array; data: object; } export default class Form extends React.PureComponent { static defaultProps: { onFieldChange: () => void; onChange: () => void; onSubmit: () => void; }; formFields: Array; field: Array>; CURRENT_STATUS: STATUS; children: Array>; currentState: FormState; setStateAndCurrentStatus: (object: any, STATUS: any) => void; /** * 递归遍历收集所有需要管理的表单组件,并注册 handleFieldChange 方法 * @param children * @returns {*} 处理过的 children */ collectFormField: (children: any) => any; /** * 初始化 FormData 结构,给 this.state.data 添加 id 为表单项 name 的属性 */ initFormDataStructure: () => void; /** * 更新 FormData 结构,当 Form 下表单项添加或删除时,将 FormData 结构更新到最新 */ updateFormDataStructure: () => void; /** * 由 Form 管理的子表单变化时触发的回掉函数,会对外触发 onFieldChange 和 onFormChange 事件 * @param fieldData {object} 由子表单传入的参数 */ handleFieldChange: (fieldData: any) => void; /** * Form 发生变化时触发的回调函数,同时对外触发 onFormChange 事件 * @param state {object} 当前的表单 state */ handleFormChange: (state: any) => void; /** * 提交事件,对外触发 onSubmit 事件 */ formSubmit: () => void; handleFormSubmit: (e: any) => void; constructor(props: any); readonly data: Readonly; componentWillMount(): void; componentWillReceiveProps(nextProps: any): void; /** * 更新子表单的基础数据 * @param {object} props 传入的 props */ updateFieldData(props: any): { value: any; errorMsg: any; validate: any; shouldRsa: any; required: any; }; render(): JSX.Element; }