我在我的React組件中有一個數據存儲監聽器,並且在設置狀態的回調中。基於新狀態中的參數,然後決定是否渲染組件。設置爲true的狀態返回false
我下面的代碼是實現這一點,但意想不到的結果:
shouldComponentUpdate() {
if (this.props.questionId == 4687760) {
console.log(!!this.state.didAnswersChange);
}
return !!this.state.didAnswersChange;
}
onQuestionStoreChange() {
let questionStoreData = this.questionStore.get(this.props.questionId);
if (questionStoreData) {
if (this.props.questionId == 4687760) {
console.log(questionStoreData.didAnswersChange || false);
}
this.setState({
didAnswersChange: questionStoreData.didAnswersChange || false
});
}
}
在第一console.log
我得到true
打印出來。然後對於一些shouldComponentUpdate()
打印出false
。
任何人都可以幫我理解這可能嗎?我已驗證打印輸出的true
確實來自onQuestionStoreChange()
,而打印輸出的false
來自shouldComponentUpdate()
。