如何解决它不能使用`setFieldsValue`

时间:2018-01-18 20:15:03

标签: antd

如何修复

  

警告:在您使用setFieldsValuegetFieldDecorator进行注册之前,无法使用getFieldProps

4 个答案:

答案 0 :(得分:1)

来自文档https://ant.design/components/form/#this.props.form.getFieldDecorator(id,-options)

  

在由getFieldDecorator包装之后,将value(或由valuePropName定义的其他属性)onChange(或由触发器定义的其他属性)道具添加到表单控件,表单数据流将由Form [...] < / p>

因此,如果没有在getFieldDecorator中注册表单字段,则不能使用setFieldsValue

您正在为表单内不存在的字段设置值。 首先,您必须使用getFieldDecorator将字段注册到表单中,然后才能使用设置器。

也许getter风格的方法名称有点误导。

答案 1 :(得分:1)

我在使用React钩子时遇到了同样的问题。以下解决方案对我有效。

props.form.getFieldDecorator('Amount', { initialValue: 'My Value' })

我觉得原因是在首次渲染后initialValue不会改变,就像defaultValue一样。

答案 2 :(得分:0)

setFieldsValue之后使用componentDidMount,或使用initialValue选项。

答案 3 :(得分:0)

请在getFieldDecorator

之前使用setFieldsValue