我在我的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()
。