Как вызвать useEffect при рендеринге подкомпонента? - PullRequest
0 голосов
/ 14 июля 2020

Я знаю, что мы можем активировать хук useEffect либо:

  1. Каждый раз, когда компонент отрисовывается.
  2. Когда компонент монтируется и / или отключается.
  3. При изменении одной из определенных зависимостей.

Но возможно ли сработать при рендеринге подкомпонента?

Ответы [ 2 ]

0 голосов
/ 14 июля 2020

Один из способов сделать это - передать обратный вызов дочернему компоненту, который будет вызываться при рендеринге каждого дочернего компонента. Теперь этот обратный вызов будет обновлять одну из опор родительского компонента с помощью вашего крючка. Ваш хук может указать эту опору как свою зависимость, что означает, что каждый раз, когда он изменяется, ваш хук будет срабатывать. Это гарантирует, что ваш хук будет только внутри родительского компонента, но проблема в том, что хук вызовет повторный рендеринг родительского компонента, и вы застряли в al oop. Насколько я понимаю, вам нужен не хук, а что-то, что следит за каждым рендером дочернего компонента и что-то делает. В этом случае достаточно простого обратного вызова

0 голосов
/ 14 июля 2020

вы можете передать функцию в качестве опоры дочернему компоненту и использовать useEffect внутри дочернего компонента, чтобы каждый раз при повторном рендеринге вы могли запускать функцию опоры

...