如何使用setFieldValue并将值作为组件之间的props传递

时间:2018-04-23 08:01:40

标签: forms reactjs antd

我尝试在我的样本注册表单中使用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>
  )
}

1 个答案:

答案 0 :(得分:2)

fname未在getFieldDecorator中定义。

你应该这样做:

handleChange = (e) => {
  const fname = e.target.name;
  const fvalue = e.target.value;
  this.props.form.setFieldsValue({
    [fname]: fvalue
  });
}