首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >React:我们如何知道所有组件都是在setState()之后挂载/呈现的?

React:我们如何知道所有组件都是在setState()之后挂载/呈现的?
EN

Stack Overflow用户
提问于 2017-06-28 09:05:42
回答 2查看 22.8K关注 0票数 11

在react中,对组件(R)的setState()调用可以触发所有子组件的重新呈现。

我们怎么知道这事什么时候结束?在安装/呈现/更新了R的所有子级之后,调用了哪个生命周期方法?

更详细的

让我们考虑以下情况:

有一个根组件R,它的子组件C1C2

我想实现我自己的redux存储,在这里,子组件( C1C2)可以分派操作,并且在所有的子组件被挂载/重新呈现/更新之后,我想命令redux存储来处理分派的操作。

因此,我需要知道何时呈现了所有的子级,并安排了对redux存储的调用,该存储将命令存储处理分派的操作。

R的所有子程序都已安装/呈现/更新之后,调用了哪个生命周期方法?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-06-28 09:10:02

我认为您正在寻找componentDidUpdate生命周期事件。https://facebook.github.io/react/docs/react-component.html#componentdidupdate

它是在组件被更新时触发的(并且它的所有子组件也被更新了)。

⚠此事件不会在第一次呈现时触发。如果还需要处理第一个呈现,则必须同时使用componentDidUpdatecomponentDidMount

票数 10
EN

Stack Overflow用户

发布于 2017-06-28 09:10:39

更新:React已经改变了它的生命周期,但是在本例中,您需要的方法仍然是相同的。新的生命周期是:

( A)安装

  1. 构造函数
  2. 静态getDerivedStateFromProps
  3. 渲染
  4. componentDidMount

( B)更新(包括支持和状态)

  1. 静态getDerivedStateFromProps
  2. shouldComponentUpdate
  3. 渲染
  4. getSnapshotBeforeUpdate
  5. componentDidUpdate

旧答案

ComponentDidUpdate会照你说的做。它是在呈现之后启动的,原因是道具的更改,或者呈现是因为状态的更改。

生命周期:

( A)安装

  1. 构造函数
  2. ComponentWillMount
  3. 渲染
  4. ComponentDidMount

( B)道具更换

  1. ComponentWillReceiveProps
  2. ShouldComponentUpdate
  3. 渲染
  4. ComponentDidUpdate

( C)国家变化

  1. ShouldComponentUpdate
  2. ComponentWillUpdate
  3. 渲染
  4. ComponentDidUpdate

更多信息:https://reactjs.org/docs/react-component.html#componentdidupdate

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44798159

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档