React组件钩子只在道具更新(而不是状态)时

时间:2018-05-17 18:03:58

标签: reactjs react-component

当我和我的组件的道具发生变化时,我想要启动一些行为。在过去,我使用了componentWillReceiveProps,但是current documentation这似乎已被弃用了。文档似乎表明componentDidUpdate是新建议,但是这会在任何更新时触发,包括更改状态。还提到了getDerivedStateFromProps,但这必须是静态方法。

我可以编写一些代码来运行所有prevPropsthis.props,但这似乎是重复的。

1 个答案:

答案 0 :(得分:0)

在没有看到代码的情况下,我认为正确的方法是使用getDerivedStateFromProps在道具发生变化时更新状态,然后让状态更改触发您想要的行为。我无法想到避免使用状态来更新组件的理由,这基本上就是反应的本质。