Reactjs 为什么不直接在componetWillReceiveProps中改变状态

Reactjs 为什么不直接在componetWillReceiveProps中改变状态,reactjs,setstate,Reactjs,Setstate,React是否建议在componentWillReceiveProps中使用setState?由于componentWillReceiveProps在呈现更新之前就已经出现,我相信这部分生命周期中的更新状态不会导致第二次重新呈现,它只是在当前更新中随新的props一起更改状态。那么为什么不直接改变状态呢?例如,为什么不这样做: componentWillReceiveProps (nextProps) { this.state.title = nextProps.title } 使用set

React是否建议在componentWillReceiveProps中使用setState?由于componentWillReceiveProps在呈现更新之前就已经出现,我相信这部分生命周期中的更新状态不会导致第二次重新呈现,它只是在当前更新中随新的props一起更改状态。那么为什么不直接改变状态呢?例如,为什么不这样做:

componentWillReceiveProps (nextProps) {
  this.state.title = nextProps.title
}
使用setState的上述缺点或优点是什么,例如:

componentWillReceiveProps (nextProps) {
  this.setState({title: nextProps.title})
}

您不能直接设置状态,因为其他操作可能会在其他部分调用的setState中同时更新状态。您永远不知道直接状态分配是在异步最终更新之前还是之后发生。太奇怪了?是的,这是一个很好的观点。但是,假设您知道,这段状态唯一重要的时刻是在这次更新期间,我想知道避免使用this.setState是否会提高性能,因为它显然比仅仅改变状态更需要计算。我将直接遵循React文档,并推迟使用任何假设,例如setState“显然计算量更大。”提供了关于为什么需要调用该函数的更多细节,并直接说,“在此方法中使用this.setState()执行状态转换。”。“我知道,这样做当然更为谨慎,但我想知道哪里可能有例外总是调用
setState
,从不直接改变状态。不要离开ReactJS生命周期。您不能直接设置状态,因为其他操作可能会在其他部分调用的setState中同时更新状态。您永远不知道直接状态分配是在异步最终更新之前还是之后发生。太奇怪了?是的,这是一个很好的观点。但是,假设您知道,这段状态唯一重要的时刻是在这次更新期间,我想知道避免使用this.setState是否会提高性能,因为它显然比仅仅改变状态更需要计算。我将直接遵循React文档,并推迟使用任何假设,例如setState“显然计算量更大。”提供了关于为什么需要调用该函数的更多细节,并直接说,“在此方法中使用this.setState()执行状态转换。”。“我知道,这样做当然更为谨慎,但我想知道哪里可能有例外总是调用
setState
,从不直接改变状态。不要离开生命周期。