首页 > 解决方案 > Reactjs FileUpload:setState 抛出“不安全操作”错误

问题描述

我正在尝试使用 上传文件input[type="file"],然后将文件对象存储在我的状态变量中,该变量包含一个对象。如果我更新我的状态,它会抛出错误insecure operation

        let {inventory} = this.state;
        if(!Array.isArray(inventory['photos'])){
            inventory['photos'] = [];
        }
        inventory['photos'][3 - e.target.id] = e.target.files[0];
        console.log(inventory);
        this.setState({inventory});
        console.log(this.state.inventory);

因为我可以在我的控制台中检查,console.log(inventory)被执行,它会在下一行抛出错误。

这可能是什么原因?

我浏览了这个 GitHub 问题https://github.com/facebook/react/issues/7553但即使他们对此一无所知。

标签: reactjs

解决方案


出现此警告的原因之一是您尝试将值设置为文件类型的输入字段。

如果你正在做类似的事情:

<input type="file" value={this.state.inventory} />

尽量避免将值设置为输入类型文件。


推荐阅读