ReactJS Firebase未捕获(在承诺中)TypeError:无法读取未定义的属性“setState”

时间:2018-01-15 22:03:22

标签: reactjs firebase

我有这个代码。 console.log部分工作并注销“temp”的正确值。但是,我似乎无法将这一价值带入该州。我尝试了很多变化。以下变体导致错误:Uncaught(in promise)TypeError:无法读取未定义的属性'setState'。

componentDidMount () {
  this.removeListener = firebaseAuth().onAuthStateChanged((user) => {
    if (user) {
      ref.child(`users/CF0IRqCsXmMHaF5GV7uVF6XNOO33`)
        .once('value')
        .then(function(snapshot){
          console.log(snapshot.val().info.temp);
          this.setState({
            temp: snapshot.val().info.temp
          })
        });

    }
  }
}

我尝试在最后添加一个绑定但它不起作用。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:3)

问题是您使用的this不是反应组件。因为您使用function(snapshot){语法作为promise回调的一部分,所以this的绑定将丢失。

尝试将function (snapshot) {更改为(snapshot) => {,因为胖箭头语法将为您绑定this