前言:在AntDesignPro3.23.6版本中,form表单绑定值是使用的getFieldDecorator方法赋值配合validateFields方法取值达到双向绑定的效果.那在AntDesignPro 4.0版本中如何赋值取值呢?

AntDesignPro3.23.6版本示例:

// 赋值
 <Form  
    labelCol={{ span: 6 }}
    wrapperCol={{ span: 14 }}
    onSubmit={this.handleSubmit}
  >
    <Form.Item>
      {getFieldDecorator('money',{
          rules=[{ 
              required: true,
              message: '请输入金额',
            }],
      })(
          <InputNumber
            min={0}
            onChange={value => console.log(value) })}
            placeholder="请输入金额"
           />
        )}
    </Form.Item>
  </Form>

// 取值
handleSubmit () =>{
    this.props.form.validateFields((err, values) => {
          if (!err) {
            // 这样就拿到了输入的金额
            const money = values.money
          }
    })
}

AntDesignPro4.0版本示例:

// 赋值
 <Form  
    labelCol={{ span: 6 }}
    wrapperCol={{ span: 14 }}
    onSubmit={this.handleSubmit}
  >
    <Form.Item
      label="金额"
      name="money"
      rules={[
        {
          required: true,
          message: '请输入金额',
        },
      ]}
    >
      <InputNumber
        min={0}
        onChange={value => console.log(value) })}
        placeholder="请输入金额"
       />
    </Form.Item>
  </Form>

// 取值
handleSubmit () =>{
  const { validateFields } = form;
  const onValidateForm = async () => {
        const values = await validateFields();
         // 这样就拿到了输入的金额
        const money = values.money
  }
}

总结:
3.23.6版本:
赋值:getFieldDecorator方法.
取值:validateFields方法.
校验:rulesgetFieldDecorator方法内.

4.0版本:
赋值:Form.Itemname属性直接赋值.
取值:validateFields方法.
校验:Form.Itemrules属性直接校验.


Timor
37 声望20 粉丝