Можно ли использовать значение, возвращаемое одним пользовательским хуком, внутри другого пользовательского хука? - PullRequest
0 голосов
/ 04 мая 2020

Я пытаюсь поделиться логами c приложения между компонентами моего приложения с помощью настраиваемых хуков. У меня есть компонент в моем приложении, который обновляет некоторое состояние, которое имеет собственный настраиваемый крючок, затем у меня есть другой компонент в моем приложении, у которого также есть собственный настраиваемый крючок, но состояние в этом вычисляется на основе изменений в состоянии, хранящемся в первый кастомный крючок. Я хочу, чтобы при обновлении состояния в первой настраиваемой ловушке я хотел, чтобы ловушка useEffect во второй настраиваемой ловушке срабатывала для вычисления нового состояния для второго компонента. Я понимаю, что, когда я набираю это, это может показаться запутанным, поэтому я создал пример barebone-кода. м пытаюсь сделать. Я хочу, чтобы когда я нажимал кнопку «щелкни меня» в этой песочнице, счетчик в ComponentTwo.js должен увеличиваться. Я новичок в API перехватчиков реакции, поэтому я, скорее всего, просто не понимаю, как они работают.

1 Ответ

0 голосов
/ 05 мая 2020

Каждый раз, когда вы вызываете useHookOne(), вы создаете новый экземпляр вашего хука.

Например. Если вы добавите console.log("hook1", Math.random()); в свой useHookOne, вы увидите разные случайные значения.

enter image description here

Вы должны использовать hook useContext или redux с крючками useSelector и useDispatch для обмена данными между компонентами и хуками.

Пример с контекстом здесь

...