我正在尝试使用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,但即使他们对此也没有任何线索。
答案 0 :(得分:2)
发生此警告时,其中一个原因是您尝试将值设置为文件类型的输入字段。
如果您正在执行以下操作:
<input type="file" value={this.state.inventory} />
尽量避免将值设置为输入类型文件。