如何使用 SSR Next 13 清除/重置提取

问题描述 投票:0回答:1

我想知道如果用户在下面的某个位置(例如嵌套在

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

reactjs typescript next
1个回答
0
投票

我已经用 React Query 的

initialData
解决了这个问题(比我想象的要简单😅)。我仍然遇到一个问题,即数据并不总是显示,但这将与客户端 React 查询相关。对于有兴趣的人,您可以在这里找到解决方案: https://github.com/lextoc/tracky-next/blob/main/app/layout.tsx#L67

© www.soinside.com 2019 - 2024. All rights reserved.