Ну що, обіцяний розбір хто винен, коли після логіна ви опиняєтесь на дашборді, а там дані ніби з минулого життя.
І так що я маю вам сказать!
(A) Компонент кешує старий state і чому одна з правильних відповідей
Це прямо топова причина, фронт після логіна не перерендерив потрібний компонент або взяв дані з попереднього useState/useEffect.
Таке буває, якщо логіка не підв’язана на userId чи authState, а просто працює як було.
(B) Куки не оновились після логіна це майже відпадає.
Якби куки не оновились, API скоріш за все повернув би 401 або дані старого юзера, А ми ж бачимо, що API дає правильну відповідь, просто UI не встигає або не знає.
(C) Браузер тримає старий localStorage тут можливо, але залежить від реалізації. бо якщо фронт бере дані не з API, а з localStorage (бо так хтось оптимізував) то після логіна може не бути оновлення.
Тоді в дашборді буде старе userInfo, поки не перезавантажиш сторінку.
(D) Race condition між запитами. це серйозний кандидат у винуватці.
Уявіть ви логінитесь, UI одразу відправляє запит на дані юзера, але токен або куки ще не оновились.
І бах дашборд приходить з даними попереднього юзера або взагалі кешованим.
(E) У бекенда затримка в записі даних, Рідко, але трапляється.
Якщо бек ще дописує сесію, або профіль юзера не одразу оновлюється в БД тоді дані можуть повертатись із затримкою.
Це зазвичай вирішується ретраєм або затримкою перед фетчем.
Якщо ловили таке у проєктах діліться як відловлювали.
Note: Про зустріч) це не інфо циганство це просто корисна зустріч щоб круто провести час, поспілкуватися обсудити якісь круті насушні питання)
Post #436
803
- ❤ 11
- 🔥 3
- 👍 2