React: 在setState#13015之后执行getDerivedStateFromProps

创建于 2019-12-24  ·  4评论  ·  资料来源: facebook/react

理想情况下,由于当前组件的setState,不应调用getDerivedStateFromProps。 但是它的表现是这样。 有人可以解释吗?

#13015中找不到解决方案

Question

所有4条评论

setState将导致re-render组件。 对于每个render组件,应调用getDerivedStateFromPropsgetDerivedStateFromProps工作的。

您应该考虑的是如何返回部分状态以进行合并。

没有示例代码,我不明白您在说什么或问什么。

预计getDerivedStateFromProps将在setState之后被调用,因为getDerivedStateFromProps返回的状态基于当前props和先前的state 。 因此,如果状态已更改(通过setState调用),则派生状态也可能已更改(因为它是propsstate ) 。

如果props不变,我们以前没有再调用它,但是这种行为引起了问题,因此我们在16.4中对其进行了更改(修复),如本博客文章所述:
https://reactjs.org/blog/2018/05/23/react-v-16-4.html#bugfix -for-getderivedstatefromprops

如果您想共享一些代码并询问有关为什么运行该方法的特定问题,我们中的一个可以看看。 现在,尽管我假设您的问题已经回答了:smile:

setState将导致re-render组件。 对于每个render组件,应调用getDerivedStateFromPropsgetDerivedStateFromProps工作的。

您应该考虑的是如何返回部分状态以进行合并。

谢谢

@bvaughn ,谢谢你的回答

此页面是否有帮助?
0 / 5 - 0 等级