比率组件ant.design的验证

时间:2018-08-28 19:39:52

标签: javascript reactjs antd

我正在尝试验证“费率”组件,设置初始值等。

  {getFieldDecorator('rating', {
    initialValue: dataSource.getIn(['data', 'rating'], ''),
    rules: [{ required: true, message: 'Field is required' }],
  })(<Rate allowClear={false} onChange={this.setRating} />)}

在我的表单中具有这样的代码会在每次更改值后导致错误

  

警告:getFieldDecorator将覆盖value,因此请不要   直接设置value并使用setFieldsValue进行设置。

任何想法如何克服它? 代码按预期工作

2 个答案:

答案 0 :(得分:1)

我认为原因是因为当您的组件受onChange控制时,您不应该使用Form

如果您想使用以下方法获取实际费率: this.props.form.validateFields(),因为还将进行字段验证

答案 1 :(得分:1)

要验证<Rate />中的antd design,应使用null作为初始值。

<Form.Item>
    {getFieldDecorator('rating', {
        initialValue: review.rating ? review.rating:null,
        rules: [
            {   
                required: true,
                message:'Rating Required',
            },
        ],
    })(
        <Rate />,
    )}
</Form.Item>