Reactjs FileUpload:setState抛出'不安全操作'错误

时间:2018-06-15 19:29:26

标签: reactjs

我正在尝试使用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,但即使他们对此也没有任何线索。

1 个答案:

答案 0 :(得分:2)

发生此警告时,其中一个原因是您尝试将值设置为文件类型的输入字段。

如果您正在执行以下操作:

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

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