我正在尝试在我的示例注册表中使用 ant 设计表单,当我尝试使用 setFieldsValue 时,它抛出错误为“除非使用 getFieldDecorator,否则无法使用 setFieldsValue”。但是我已经在我的代码中使用了 getFieldDecorator。这是我的代码示例。
handleChange = (e) => {
const fname = e.target.name;
const fvalue = e.target.value;
this.props.setFieldsValue({
fname: fvalue
});
}
render(){
const { getFieldDecorator } = this.props.form
return (
<Row gutter={4}>
<Col className="reg-personal-details-grid-column" span={24}>
<FormItem {...formItemLayout} label="First Name">
{getFieldDecorator("firstName", {
rules: [
{
required: true
}
]
})(
<Input
placeholder="First Name"
required
name="firstName"
onChange={this.handleChange}
/>
)}
</FormItem>
</Col>
</Row>
)
}
最佳答案
fname
未在 getFieldDecorator
中定义.
你应该做这个:
handleChange = (e) => {
const fname = e.target.name;
const fvalue = e.target.value;
this.props.form.setFieldsValue({
[fname]: fvalue
});
}
关于forms - 如何使用 setFieldValue 并将值作为组件之间的 props 传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49976107/