Javascript 有没有办法将文件存储在React状态?
我正在进行一个项目,需要在我的组件状态下存储一个图像,以便我可以将文件和附带的数据发送到另一个组件,该组件将数据上传到我的Firebase数据库,并将图像上传到我的Firestore 我试着用正常方式设置状态,使用提交图像时调用的函数。但是我要传递文件的状态仍然为空 初始状态:Javascript 有没有办法将文件存储在React状态?,javascript,reactjs,firebase,google-cloud-firestore,Javascript,Reactjs,Firebase,Google Cloud Firestore,我正在进行一个项目,需要在我的组件状态下存储一个图像,以便我可以将文件和附带的数据发送到另一个组件,该组件将数据上传到我的Firebase数据库,并将图像上传到我的Firestore 我试着用正常方式设置状态,使用提交图像时调用的函数。但是我要传递文件的状态仍然为空 初始状态: state = { title: '', description: '', date: '', ticket: '', price: '', image: [] } 输入
state = {
title: '',
description: '',
date: '',
ticket: '',
price: '',
image: []
}
输入:
<input type="file" id="image" accept="image/*" onChange={this.handleChangeImage} />
如果我在控制台上记录变量“file”,我会得到该文件,但console logging state.image只会显示一个空数组。尝试将句柄函数更改为:
handleChangeImage = (e) => {
const file = e.target.files[0];
const newImages = [...this.state.image];
newImages.push(file);
this.setState({
image: newImages
});
}
尝试将句柄函数更改为:
handleChangeImage = (e) => {
const file = e.target.files[0];
const newImages = [...this.state.image];
newImages.push(file);
this.setState({
image: newImages
});
}
这个问题现在已经解决了。我是个白痴。我的问题不是状态没有用文件更新,问题是控制台日志输出发生在状态用文件更新之前 状态总是用文件更新,我只是从来没有意识到
换句话说,这个问题不是问题,只是一个愚蠢的新手犯的错误。这个问题现在已经解决了。我是个白痴。我的问题不是状态没有用文件更新,问题是控制台日志输出发生在状态用文件更新之前 状态总是用文件更新,我只是从来没有意识到
换句话说,这个问题不是问题,只是一个愚蠢的新手犯的错误。
const newImages=this.state.image代码>仅创建指向同一数组的新指针。您考虑的是constnewimages=[…this.state.image]代码>嗨,不幸的是这也不起作用。文件的状态仍然为空。如果可能的话,我想查一下。但是我找不到关于它的任何信息。const newImages=this.state.image代码>仅创建指向同一数组的新指针。您考虑的是constnewimages=[…this.state.image]代码>嗨,不幸的是这也不起作用。文件的状态仍然为空。如果可能的话,我想查一下。但是我找不到任何关于它的信息。