Как очистить/сбросить выборку с помощью SSR Next 13

Мне интересно, как я могу вспомнить выборку 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 поддерживает создание контекста для передачи данных между компонентами.


1
71
1

Ответ:

Решено

Я решил проблему (это оказалось проще, чем я думал 😅) с помощью React Query initialData. У меня все еще есть проблема, когда данные не всегда отображаются, но это будет связано с React Query на стороне клиента. Для интересующихся здесь вы можете найти решение: https://github.com/lextoc/tracky-next/blob/main/app/layout.tsx#L67