自定义getFieldDecorator包裹的组件,使用valuePropName、initialValue控制台警告

新手上路,请多包涵

问题描述

自定义getFieldDecorator包裹的组件,同时使用valuePropName和initialValue给自定义组件设初始值时浏览器报警告,难道是我使用方法不对吗?

自定义的组件接收一个fileList可为初始值,还有一个onChange函数,

问题出现的环境背景及自己尝试过哪些方法

os version:win10
antd version: 3.10.9

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)
{<FormItem label={'图片'}>

{
    form.getFieldDecorator('sharePiccccc', {
        rules: [
            {
                required: true,
                message: '请选择图片'
            },
        ],
        valuePropName: 'fileList',
        // initialValue: [{
        //     id: 1,
        //     name: 'test',
        //     url: 'http://xxxxxxx'
        // }],
        getValueFromEvent: (fileList = []) => {
            const [file = {}] = fileList;
            return file.url || file.fileUrl || '';
        }
    })(
        <MaterialCenterModal
            imgWidth={120}
            imgHeight={120}
            selectLimit={1}
        />
    )
}

</FormItem>
}

你期待的结果是什么?实际看到的错误信息又是什么?

预期结果是正常了,可以设置初始值,并且数据也被Form接管了。
但是控制台报了警告:
Warning: getFieldDecorator will override fileList, so please don't set fileList directly and use setFieldsValue to set it.

阅读 6.2k
2 个回答

初始值通过initialValue属性设置,更改值使用setFieldsValue 。

设置的时候使用 form.setFieldsValue({sharePiccccc: fileList})

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏