2017-05-01 3 views
1

firebase 스냅 샷 기능의 내부 상태를 설정하려고하는데, Cannot read property 'setState' of null 오류가 발생합니다. 어떻게 작동하게하는지 잘 모르겠습니다.React와 Firebase - 캔트 상태를 설정하십시오.

이 내 코드입니다 :

componentDidMount =() => { 
    const dataGoalRef = dbRef.child('goals/'+this.state.uid); 

    dataGoalRef.child("mainGoal").on("value", function(mainGoalKeySnapshot) { 
     var favoriteMainGoal = mainGoalKeySnapshot.val(); 
     console.log(favoriteMainGoal); 

     var queryRef = dataGoalRef.orderByKey().equalTo(favoriteMainGoal); 
     queryRef.on("value", snap => { 
     this.setState({ 
      dataGoal: snap.val(), 
     }); 
     }); 
    }); 
    } 

어떻게 그렇게 할 수 있습니까?

답변

1

방금 ​​알아 냈습니다. 나는 첫 번째 방법을 구속하지 않았다. 그래서 솔루션입니다 : 화살표 기능을 대신 당신이 dataGoalRef.child("mainGoal").on("value", function(mainGoalKeySnapshot){})

업데이트 된 코드에 통과 한 콜백에 대한 정상적인 기능 선언을 사용하여

componentDidMount =() => { 
    const dataGoalRef = dbRef.child('goals/'+this.state.uid); 

    dataGoalRef.child("mainGoal").on("value", (mainGoalKeySnapshot) => { 
     var favoriteMainGoal = mainGoalKeySnapshot.val(); 
     console.log(favoriteMainGoal); 

     var queryRef = dataGoalRef.orderByKey().equalTo(favoriteMainGoal); 
     queryRef.on("value", snap => { 
     this.setState({ 
      dataGoal: snap.val(), 
     }); 
     }); 
    }); 
    } 
0

시도

dataGoalRef.child("mainGoal").on("value", (mainGoalKeySnapshot) => { 
.... 
.... 
}); 
관련 문제