我尝试在我的样本注册表单中使用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>
)
}
答案 0 :(得分:2)
fname
未在getFieldDecorator
中定义。
你应该这样做:
handleChange = (e) => {
const fname = e.target.name;
const fvalue = e.target.value;
this.props.form.setFieldsValue({
[fname]: fvalue
});
}