React组件中表单如何导出供其他组件使用

103 阅读1分钟
  1. 组件导出
const SdxxForm = Form.create()(Sdxx)

这行代码确实是将整个 Sdxx 组件包装成一个带有 Ant Design Form 功能的新组件。具体来说:

  1. Form.create() 是 Ant Design 的一个高阶组件(HOC),它会向被包装的组件注入 form 对象。

  2. 这个 form 对象包含了很多用于操作表单的方法,比如 getFieldValuesetFieldsValuevalidateFields 等。

  3. 被包装后的组件(这里是 Sdxx)可以通过 this.props.form 访问到这些方法。

  4. 这样做的结果是,Sdxx 组件内的所有表单元素都可以被 Ant Design 的 Form 组件管理,实现了数据绑定、验证等功能。

  5. 新创建的 SdxxForm 组件就具备了这些表单管理的能力。

这种方式使得表单处理变得更加简单和统一,特别是在处理复杂表单时非常有用。它允许你在组件内部方便地访问和操作表单数据,而不需要手动管理每个表单字段的状态。

<Gfxx
     sdxx={this.state.sdxx}--这里将sdxx组件传入到其他组件
 />
this.setState({
      sdxx: this.sdxxChild, ---相当于挂载组件,状态等于组件
    })
 <Sdxx
	 onRef={(ref) => { this.sdxxChild = ref }}
                  />
                 ---这里将sdxx组件挂载到sdxxChid属性上,sdxxChild=sdxx

在其他组件内如何调用 表单调用方法 this.props.form 访问到这些方法``

let fwlx = this.props.gfxx.props.form.getFieldValue('fwlx')

//this.props.gfxx获取父组件传入的gfxx属性
//.props.form.getFieldValue('fwlx')用于获取该组件表单的字段
//`this.props.form`获取挂载出来的form