在我的反应中,shouldComponentUpdate函数,this.props和nextprops具有所有相同的属性,但它们不相等。我的代码:
shouldComponentUpdate(nextProps) {
console.log(this.props);
console.log(nextProps);
console.log('nextProps vs this.props:', nextProps === this.props);
console.log('this.props.style vs nextProps.style:', this.props.style === nextProps.style);
console.log('this.props.data vs nextProps.data',this.props.data === nextProps.data);
return true;
}
我的困惑在于道具是否具有一些隐藏的属性。
答案 0 :(得分:0)
对象比较不起作用。
例如,请使用以下代码:
test_a = {key: 'value'}
test_b = {key: 'value'}
console.log(test_a == test_b) //false
有很多方法可以正确地比较js对象的值是否相等,而评论部分中的某个人已经提供了指向该主题的前一个线程的链接。
答案 1 :(得分:-2)
只需执行JSON.stringify(this.props) === JSON.stringify(nextProps)