【问题标题】:How to call the function inside the api request function?api请求函数里面的函数怎么调用?
【发布时间】:2019-06-30 02:55:23
【问题描述】:

提交请求post API后如何调用该函数?具有反应 js 功能。请注意,我已经创建了一个构造函数。 提交请求 post API 后如何调用该函数?具有反应 js 功能。请注意,我已经创建了一个构造函数。

  fetchData() {
    request.get(
      {
        url: "http://test.com/api/employee"
      },
      function(error, response, body) {
        var bodyJson = JSON.parse(body);

        this.setState({
          username: "Empployee Table",
          result: bodyJson.data
        });
      }.bind(this)
    );
  }

  componentDidMount() {
    this.fetchData(); <------- WORKS FINE
  }



  handleSubmit(event) {

    var data =  {
      employee_name:"test",
      employee_salary:"123",
      employee_age:"23",
      employee_image:"sdf",
  }

    request.post({
      url: 'http://test.com/api/insert/employee',
      form: data,

    }, function (error, response, body) {

     this.fetchData(); <------- NOT WORKING

    });

    event.preventDefault();
  }

【问题讨论】:

  • 欢迎来到stackoverflow。理解问题所需的代码必须以文本形式粘贴到问题本身中,并以代码的形式适当地格式化。它不应该是外部链接(这些是这里的规则)。它不应该是图像。请使用问题下方的“编辑”链接进行修复。
  • 您可能还需要更完整地描述您要问的问题以及您要完成的任务。 “调用函数”并没有解释你想要完成什么。
  • 谢谢我是新来的,我已经编辑了我的问题

标签: node.js reactjs api


【解决方案1】:

如果不绑定回调函数this指的是回调上下文。

你可以使用如下箭头函数来实现,

fetchData = () => {
    request.get(
      {
        url: "http://test.com/api/employee"
      },
      (error, response, body) => {
        var bodyJson = JSON.parse(body);

        this.setState({
          username: "Empployee Table",
          result: bodyJson.data
        });
      }
    );
  }

【讨论】:

  • 你可以尝试使用带有回调的箭头函数
  • 对不起,先生,我该怎么做?
  • 答案是,(error, response, body) =&gt; { var bodyJson = JSON.parse(body); this.setState({ username: "Empployee Table", result: bodyJson.data }); }
  • 使用(error, response, body) =&gt;{...} 而不是function(error, response, body){...}.bind(this)
  • @vincemighty 我想你忘了在handleSubmit 中绑定回调。这就是问题
猜你喜欢
  • 2014-10-05
  • 2012-07-02
  • 1970-01-01
  • 2018-12-25
  • 1970-01-01
  • 2022-01-24
  • 2021-10-24
  • 1970-01-01
  • 2022-01-17
相关资源
最近更新 更多