1. this.props always equals to nextProps
结构:父组件:ComparisonChart,子组件:UniversalChart
问题:父组件中state>data传到子组件作为props>data,但是在子组件的shouldComponentUpdate中,this.props和nextProps总是相等。
原因:
// 问题所在
const { data } = this.state
...
data.push(..)
this.setState({ data })
// 写改为
const data = [...this.state.data]
const { data } = this.state其实只是对state.data进行了浅拷贝,此时data指向了state.data的地址,所以data.push(…)已经导致state.data的值改变了,所以this.setState({ data })导致的子组件更新时,this.props和nextProps一样。
参考:
主要参考了这个文章