React从另一个函数调用一个函数

时间:2018-12-09 20:21:40

标签: javascript reactjs dropzone.js

设置简单的图像上传后,我试图从一个函数中调用另一个函数,并且日志弹出

  

未处理的拒绝(TypeError):self.sendImage不是函数

logs

这是代码

  readFile(files) {
        var self = this;
    if (files && files[0]) {
      let formPayLoad = new FormData();
      formPayLoad.append("attachment_image", files[0]);
      self.sendImage(formPayLoad);
    }

  }

  sendImage(formPayLoad) {
    let auth_token = window.localStorage.getItem("auth_token");
    fetch("/posts", {
      headers: {
        Accept: "application/json",
        Access: auth_token
      },
      method: "POST",
      body: formPayLoad
    })
      .then(response => response.json())

  }

要解决此问题,我尝试将变量this更改为self,但仍然保留错误。

那么,请问有人能解释为什么这个不处理拒斥物吗? 与Es6类有关?

1 个答案:

答案 0 :(得分:-1)

您可能需要在构造函数ex中绑定函数

this.sendImage = this.sendImage.bind(this);

或者您可以使用ES6并使用箭头功能消除对箭头功能的需求

sendImage = (formPayLoad) => {
    let auth_token = window.localStorage.getItem("auth_token");
    fetch("/posts", {
      headers: {
        Accept: "application/json",
        Access: auth_token
      },
      method: "POST",
      body: formPayLoad
    })
      .then(response => response.json())

  }