首页 > 解决方案 > 未捕获的类型错误:上传图像时无法读取 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);

这是我得到的错误:

提前感谢您的帮助! 在此处输入图像描述

标签: javascriptreactjs

解决方案


bind()的功能或使用箭头功能。

a)在您的构造函数内部(当您添加一个时)

this.handleFileUpload = this.handleFileUpload.bind(this)

b)使用箭头功能,将您的功能更改为

handleFileUpload = () => {
  // your function body
}

推荐阅读