这是场景。我有一个父组件,一个子组件。父组件执行 ajax 调用并将数据下推给子组件。
当子组件接收到新数据时,在(子组件的)componentDidUpdate 中,我将重新设置其内部状态。
componentDidUpdate(prevProps, prevState) {
if ( prevProps.myRow !== this.props.myRow ) { //check for when new data is passed into this component from its parent / container...
this.setState({
editableRowObj : this.props.myRow //... only then I should bother updating the state with the new data passed in.
})
}
}
我想不出我需要在 componentDidUpdate (孩子的)内部检查的情况
prevState !== this.state
这是因为当我将新数据传递给子组件时,this.state 将等于 prevState(这将是旧状态,在接收新数据之前);即在我运行上述 setState 之前,prev 和 current 状态将保持不变。
因此我的问题是,在什么情况下我需要检查 prevState != this.state ?