Родительский кастомный хук срабатывает после выполнения логики дочернего компонента?
Есть кастомный хук родителя, в котором есть useEffect, который делает запись redux store. На основе эти данных из стора дочерний компонент делает отрисовку. Но данные из стора в нём, при первом рендере присутсвуют дефолтные , хотя в родителе я задиспатчил новые.
hzzzzl, Спасибо. Еще вопрос, почему не перерисовывется дочерний компонент который зависит от данных из стора, когда я поменял данные в сторе, в родительском компоненте. Да и не только в родительском, в любом даже, должно перерендерить ведь? Даже если навесить на useEffect зависимость данных из стора, всё равно не ререндерит
hzzzzl, Кстати дочерний хук, который выводит значения из стора в консоль, срабатывает раньше чем родительский хук, который меняет данные в сторе... т.к мой кастомный хук , это обычная ф-ция, при вызове которой, внутри её и срабатывает useEffect , в самую последнюю очередь
Vann Damm, это не противоречит :)
отрисовал рендер -> запустил useEffect, то есть дочерние рендеры произойдут раньше родительского, поэтому родительский хук вызовется только когда все рендеры снизу в дереве компонентов отработают
а скрин я если честно не понял - если isAuth не определен, то редирект сразу произойдет, и обратно в этот компонент Application мы уже не вернемся?
то есть я думаю, что правильнее было бы определить какую нибудь переменную isAuthLoaded: false, и подождать с рендером Application до того момента, когда мы узнаем от сервера, залогинен этот юзер или нет
hzzzzl, Ну да, сперва цепочка рендеров, потом цепочка Эффектов.
Вернёмся, когда пользователь , перейдёт по роуту с логином,залогинится, создастся токен, и в редакс сторе isAuth станет true
Хорошо,спасибо
Вот родительский хук
И не знаю как быть с login logout , он мне в самом вверху не нужен. А нужен внизу , когда редирекчу на login, мб в стор их запихать , useContextом было бы красивее , но уже выбрал редакс.
p.s при задержке рендера дочерних компонентов с помощью условия, когда dispatch записал с стор нужные данные , useEffect начал работать в нормальном режиме , по цепочке от родителя.
p.p.s Но почему в предыдщей версии моей реализации когда я обновляю данные в сторе, то ничего не перересовывется. Получается, что, любые эффекты, которые взаимодействуют со стором, должны сопутсвоваться условием, чтобы рендер дальше не шел и ничего не ломалось?)