首页 文章

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

提问于
浏览
2

我有这个代码 . console.log部分工作并注销“temp”的正确值 . 但是,我似乎无法将这一 Value 带入该州 . 我尝试了很多变化 . 以下变体导致错误:Uncaught(在promise中)TypeError:无法读取undefined的属性'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 回答

  • 3

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

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

相关问题