【发布时间】:2018-10-28 02:26:36
【问题描述】:
当且仅当我的组件的道具发生变化时,我想启动一些行为。过去我使用过componentWillReceiveProps,但使用current documentation,这似乎已被弃用。文档似乎表明componentDidUpdate 是新建议,但是这会在任何更新(包括状态更改)时触发。还提到了getDerivedStateFromProps,但这必须是静态方法。
我可以编写一些代码来运行所有prevProps 和this.props,但这似乎是重复的。
【问题讨论】:
-
为什么状态变化时不更新?这是“反应”的主要功能之一。它对状态变化做出“反应”。那么停止设置状态?
-
我最终需要改变状态,但我需要在接收道具和更新状态之前执行其他组件实例逻辑。由于这个逻辑是特定于实例的,我不认为静态
getDerivedStateFromProps可以处理它。对其中一个答案的评论中有更多详细信息。 -
我认为您需要提供您实际尝试过的代码并告诉您期望发生什么。也许使用 console.log 告诉我们什么时候应该发生。否则没有人可以帮助你,而且问题质量也不好。