在ANTD项目中使用 setFieldsValue 设置表达值得时候,提示了以下错误:

You cannot set a form field before rendering a field associated with the value

原来的代码

this.$refs.form.setFieldsValue(record);

record 为一个加载的数据对象

错误原因

在使用setFieldsValue给表单Form的某一个filed赋值时,可能掺杂了非表单控件中的字段,Form表单在赋值和渲染时发现有些字段无法渲染在现有的字段(因为不存在),所以就会报出这样的错误提示

解决办法

赋值的时候一一对应,不多传值。

this.$refs.form.setFieldsValue({
    name:record.name,
    content:record.content,
    ....
});