javascript - 未捕获的类型错误:上传图像时无法读取 reactJS 中未定义的属性“props”
问题描述
我想让用户上传图片,但是当我尝试调用 uploadhandler 时,我得到了错误。如果我在handleFileUpload 之外调用this.props.uploadDocumentRequest,就没有问题。但是当我在处理程序内部调用它时,我得到了错误。我正在使用 React 和 Redux。
这是代码:
import React, { Component } from "react";
import { connect } from "react-redux";
import * as actions from "../actions";
class File extends Component {
handleFileUpload(event) {
const file = event.target.files[0];
console.log(file, file.name);
this.props.uploadDocumentRequest({
file,
name: file.name
});
}
render() {
return (
<div>
<input type="file" onChange={this.handleFileUpload} />
</div>
);
}
}
export default connect(null, actions)(File);
这是我得到的错误:
提前感谢您的帮助! 在此处输入图像描述
解决方案
您bind()
的功能或使用箭头功能。
a)在您的构造函数内部(当您添加一个时)
this.handleFileUpload = this.handleFileUpload.bind(this)
b)使用箭头功能,将您的功能更改为
handleFileUpload = () => {
// your function body
}
推荐阅读
- node.js - os.networkInterfaces 不是函数
- spring-boot - 规范 OR 子句,在 isEmpty/isNull 中
- php - 在 WHERE 子句中写入两个条件会在 PDO 查询中产生不正确的输出
- r - ggplot 停止 geom_segment 显示在图例中的 geom_boxplot
- sql - 为在某些分支机构工作的人寻找假期
- reactjs - 制作其他页面后,抽屉导航器不滚动
- javascript - JS:innerHTML 不更新
- r - 如何在 r 中找到 2 个数据集之间的公共列?
- css - 根据语言更改字体系列
- python - 为什么 mouseMoveEvent() 不跟踪 event.button() 的变化