我有这个代码。 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
})
});
}
}
}
我尝试在最后添加一个绑定但它不起作用。任何帮助表示赞赏。
答案 0 :(得分:3)
问题是您使用的this
不是反应组件。因为您使用function(snapshot){
语法作为promise回调的一部分,所以this
的绑定将丢失。
尝试将function (snapshot) {
更改为(snapshot) => {
,因为胖箭头语法将为您绑定this
。