使用axios.all()和axios.spread()“找不到变量”方法错误

时间:2018-07-20 22:44:35

标签: javascript reactjs rest axios referenceerror

我正在尝试创建一个程序,该程序运行多个axios请求以获取图表数据,并等待所有请求完成,然后再将数据拉入图表。这是我当前的一些代码:

minBugs() {
  return (
    axios({
      responseType: 'json',
      auth: {
        username: '<username>',
        password: '<password>'
      }
    })
    .get('<url>'));
}

normBugs() {
  return (axios({
    responseType: 'json',
    auth: {
      username: '<username>',
      password: '<password>'
    }
  }).get('<url>'));
}

componentDidMount() {
  axios.all([minBugs(), normBugs()])
    .then(axios.spread(function(a, b) {
      //manipulate data 
    }))
    .catch(message => console.log('Axios exception: ', message));
}

当我尝试运行它时,它给我以下错误:

ReferenceError: Can't find variable: minBugs

任何想法为何?谢谢!

1 个答案:

答案 0 :(得分:0)

由于缺少组件的其他部分,我们看不到这里发生了什么,但是您使用的是componentDidMount,因此该组件应该是一个类组件。因此,您需要将函数与this一起使用。

componentDidMount() {
      axios.all([this.minBugs(), this.normBugs()])
      .then(axios.spread(function (a, b) { 
         //manipulate data 
      }))
      .catch(message => console.log('Axios exception: ', message));
}