未捕获的typeError:(//某些函数)不是函数

时间:2016-07-19 04:37:47

标签: javascript reactjs

我有一个react类,我正在从商店中调用getData函数

class A extends React.component {
  componentDidMount(){
    Store.getData(a).then(data =>{
      //some data
    });
  }

  render (){
    //some data
  }
}

商店中的功能是

getData : function (a) {
  return (a+b);
}

当我跑步时出现错误

Uncaught TypeError: Store.getData(a).then is not a function 我如何纠正它?

1 个答案:

答案 0 :(得分:1)

函数then用于处理已解决的promises。在您的代码函数getData中,只返回a+b的结果(即不使用任何承诺)。如果你想使用then进行其他操作,你应该更新getData函数,以便它使用promises,尽管在你的情况下不清楚为什么你不能立即使用函数的结果。

以下是您如何使用承诺:

getData : function (a) {
    return new Promise(function(resolve, reject){
        resolve(a + b);
    });
}

但是你的函数getData不是异步的,所以你可以直接在类构造函数中使用函数getData的结果:

class A extends React.component {
    componentDidMount() {
        var yourData = Store.getData(a);
        // do what you need with this data
    }
    // the rest of your class
}