我正在使用 Ant 设计 - 带有 React 的表单和模态组件。
表单包装组件:
class InsertForm extends React.Component{
render(){
const formItemLayout = {
labelCol: { span: 24 },
wrapperCol: { span: 24},
};
const { getFieldDecorator } = this.props.form;
return (
<div>
<Form.Item
{...formItemLayout}
label="Title"
>
{getFieldDecorator('title', {
})(
<Input placeholder="Title" />
)}
</Form.Item>
......
</div>
)
}
}
const InsertFormWrapper = Form.create()(InsertForm);
我在同一个文件中的另一个组件中调用这个组件(这就是我不导出表单组件的原因)Modal
,我正在使用wrappedComponentRef
:
export default class InsertCont extends React.Component{
constructor(props){
super(props);
console.log(this.form) // Undefined
}
insert = () => {
console.log(this.form); // Not undefined
}
render(){
<Modal
...{modalProps}
onOk={this.insert}
>
<InsertFormWrapper
wrappedComponentRef={(form) => this.form = form}
/>
</Modal>
}
}
问题是在构造函数中 refthis.form
是未定义的,但是如果模式打开并且单击 OK 按钮 - onOk={this.insert}
ref 不是未定义的。