javascript - 图片上传反应输入表单:无法读取属性'0
问题描述
我是上传图像的新手。我在上传图片的地方有我的输入:
<input className="your-upload-class" type="file" ref ="image" onChange={this.fileSelectHandler}/>
<button onClick={this.fileUploadHandler}>upload</button>
这是我的功能:
fileSelectHandler = event => {
console.log(event.target.files[0])
}
fileUploadHandler = event => {
var files = event.target.files[0];
S3.upload({
files:files,
path:"subfolder"
},function(e,r){
console.log(r);
});
}
当我选择图像时,我的 onChange 函数会在控制台中显示我的文件信息,如下所示: File(16862) {name:ect...
当我单击 uplaod 时,我收到此错误:
无法读取未定义的属性“0”
我不确定为什么在上传时会出现该错误,但在选择图像时会显示信息。如何在变量中获取文件信息以便保存?
我也在使用 Lepozepo/S3 并且已经在我的配置文件中设置了我的所有凭据,但我认为我的问题与我如何设置 var 文件有关。
解决方案
在您的组件内部,我们使用 将fileSelectHandler
图像设置为我们的状态,然后我们可以从同一组件中的另一个处理程序访问此状态,而不是尝试从 UI 再次获取相同的图像。
class MyComponent extends React.Component {
state = {
image: null
}
fileSelectHandler = event => {
this.setState = {
image: event.target.files[0]
}
}
fileUploadHandler = event => {
const { image } = this.state
S3.upload({
files: image,
path: "subfolder"
}, function (e, r) {
console.log(r);
});
}
render() {
return (
// Stuff
);
}
}
推荐阅读
- asp.net-core - 如何在 minikube 本地为 asp.net 核心应用程序的部署 yaml 文件配置 https?
- c++ - 继承类的构造函数没有运行
- python - 如何在 C++ 应用程序中调用 Python 解释器并获取信息(错误消息或运行时字符串)?
- python - GEKKO 中的约束非线性优化,目标函数与预期解不匹配
- grammar-kit - 语法工具包教程?.bnf 和 .flex 文件指令?
- flutter - 从类中返回动态消息
- javascript - 灵活的汉堡菜单,过渡不能同时使用宽度和顶部
- javascript - 如何在 n 维数组中获取相邻元素?
- c# - 等待任务完成,在“等待”之后进行操作
- string - 要插入另一个文件的 sed 结果