Мне интересно, как я могу вспомнить выборку validateToken
, если где-то внизу (например, вложенный в Navigation
) пользователь выходит из системы. Каков хороший способ очистить переменную user
(или установить ее для пользователя)?
Макет.tsx:
import { cookies } from "next/headers";
export default function RootLayout({
children,
}: {
children: React.ReactNode;
}) {
const response = await validateToken(cookies());
let user = null;
if (response.success) user = response.data;
return (
<html lang = "en">
<body>
<Navigation user = {user}
{children}
</body>
</html>
);
}
Когда я обновляю страницу, данные user
всегда актуальны, поэтому на стороне сервера они работают.
Полный код можно найти здесь: https://github.com/lextoc/tracky-next
🤔 А знаете ли вы, что...
React поддерживает локализацию и мультиязычность.
Я решил проблему (это оказалось проще, чем я думал 😅) с помощью React Query initialData
. У меня все еще есть проблема, когда данные не всегда отображаются, но это будет связано с React Query на стороне клиента. Для интересующихся здесь вы можете найти решение:
https://github.com/lextoc/tracky-next/blob/main/app/layout.tsx#L67