Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 反应:我们如何知道所有组件在setState()之后都已装入/呈现?_Reactjs_Redux_React Redux - Fatal编程技术网

Reactjs 反应:我们如何知道所有组件在setState()之后都已装入/呈现?

Reactjs 反应:我们如何知道所有组件在setState()之后都已装入/呈现?,reactjs,redux,react-redux,Reactjs,Redux,React Redux,在react中,调用组件(R)的setState()可以触发所有子组件的重新渲染 我们怎么知道什么时候结束? 在装载/呈现/更新R的所有子项之后,调用哪个生命周期方法 更详细的信息: 我们考虑以下情况: 有一个根组件R,它的子组件C1和C2 我希望实现我自己的redux存储,其中子组件(C1和C2)可以分派操作,并且在所有子组件都已装载/重新呈现/更新之后,我希望命令redux存储处理分派的操作 因此,我需要知道何时呈现了所有子对象,并安排对redux存储的调用,该调用将命令存储处理分派的操作

在react中,调用组件(
R
)的
setState()
可以触发所有子组件的重新渲染

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

更详细的信息:

我们考虑以下情况:

有一个根组件
R
,它的子组件
C1
C2

我希望实现我自己的redux存储,其中子组件(
C1
C2
)可以分派操作,并且在所有子组件都已装载/重新呈现/更新之后,我希望命令redux存储处理分派的操作

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


R
的所有子项都已装入/呈现/更新之后调用哪个生命周期方法?

我想您正在查找
组件diddupdate
生命周期事件

当组件正在更新(并且其所有子组件也已更新)时,会触发该事件


⚠ 此事件不会在第一次渲染时触发。如果还需要处理首次渲染,则必须同时使用
componentdiddupdate
componentDidMount

Update:React已更改其生命周期,但在本例中,所需的方法仍然相同。新的生命周期是:

A) 安装

  • 建造师
  • 静态getDerivedStateFromProps
  • 渲染
  • 组件安装
  • B) 更新(包括道具和状态)

  • 静态getDerivedStateFromProps
  • 应该更新组件吗
  • 渲染
  • 更新前获取快照
  • 组件更新

  • 旧答案

    componentdiddupdate
    将按您所说的执行。由于道具更改而在渲染后立即启动,或者由于状态更改而在渲染后立即启动

    生命周期:

    A) 安装

  • 建造师
  • 组件将安装
  • 渲染
  • 组件安装
  • B) 道具变化

  • 组件将接收道具
  • 应该更新组件吗
  • 渲染
  • 组件更新
  • C) 状态变化

  • 应该更新组件吗
  • 组件将更新
  • 渲染
  • 组件更新
  • 更多信息:

    检查
    componentdiddupdate
    :谢谢,但它会在所有子项都呈现后启动吗?是的。更多信息:我不确定。guy的回答只是当前文档的一个推论,该文档指定在更新DOM时调用
    componentDidUpdate
    ,但并不意味着对其自己的子级调用。我想强调的是,这类操作是异步的。父组件渲染直到其所有子组件都被渲染后才完成。因此,如果父级渲染过程未完成,则不会启动componentDidUpdate。在任何情况下,测试并确认这种行为都不是一件乏味的事情。