- 组件导出
const SdxxForm = Form.create()(Sdxx)
这行代码确实是将整个 Sdxx 组件包装成一个带有 Ant Design Form 功能的新组件。具体来说:
-
Form.create()是 Ant Design 的一个高阶组件(HOC),它会向被包装的组件注入form对象。 -
这个
form对象包含了很多用于操作表单的方法,比如getFieldValue、setFieldsValue、validateFields等。 -
被包装后的组件(这里是
Sdxx)可以通过this.props.form访问到这些方法。 -
这样做的结果是,
Sdxx组件内的所有表单元素都可以被 Ant Design 的 Form 组件管理,实现了数据绑定、验证等功能。 -
新创建的
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