子组件渲染时如何触发useEffect?

时间:2020-07-14 14:23:06

标签: reactjs react-hooks use-effect

我知道我们可以触发useEffect钩子:

  1. 每次渲染组件时。
  2. 安装和/或卸载组件时。
  3. 当定义的依赖项之一发生更改时。

但是有可能在子组件渲染时触发它吗?

2 个答案:

答案 0 :(得分:0)

您可以将函数作为prop传递给子组件,并在子组件内部使用useEffect,以便每次再次渲染时都可以运行prop函数

答案 1 :(得分:0)

您可以做的一种方法是将回调传递给子组件,该子组件将在每个子组件渲染器中调用。现在,此回调将使用您的钩子更新父组件的道具之一。您的挂钩可以将此道具指定为其依赖项,这意味着每当它更改时,都会触发您的挂钩。这将确保您仅将钩子放在父组件中,但是问题是钩子将触发父组件重新渲染,并且您陷入了循环。据我了解,您不需要一个钩子,但可以监视子组件的每个渲染并执行某些操作。在这种情况下,简单的回调就足够了