什么时候打印出的 nextProps.content 和 this.props.content 才能不相等呢?每次运行时显示这两个值是相等?
来源:4-9 React 生命周期函数的使用场景
兜兜20
2020-10-27
在 TodoItem 组件中,有下面的函数,
shouldComponentUpdate(nextProps, nextState) {
console.log(‘nextProps’, nextProps.content)
console.log(‘thisProps’, this.props.content)
if (nextProps.content !== this.props.content) {
console.log(‘true’)
return true;
} else {
console.log(‘false’)
return false;
}
}
每次打印出的 nextProps.content 和 this.props.content 都是相等的,return false,后面就不会再继续执行 render 函数渲染。
什么时候这两值是不相等的,从而执行 render 函数进行渲染呢?
写回答
4回答
-
Lemon_1013
2021-09-07
可以了 怀疑是缓存的问题吧
00 -
Lemon_1013
2021-09-07
我也是啊 一直都是true
00 -
慕码人7077953
2020-11-27
//@Dell 子组件shouldComponentUpdate代码如下 shouldComponentUpdate(nextProps, nextState){ var isUpdate = false console.log(this.props.Todoitem) console.log(nextProps.Todoitem) if(this.props.Todoitem !== nextProps.Todoitem){ console.log('new content to update') isUpdate = true } else{ console.log('no new content') isUpdate = false } return isUpdate }
00 -
Dell
2020-10-31
这个你只需要让父组件调用子组件的时候,改变下传递给子组件的参数,就能模拟出 props 不相等的情况了。
042021-02-14
相似问题