我想知道,如果用户在下面的某个位置(例如,嵌套在Navigation中)注销,我如何才能回想起validateToken FETCH.清除user变量(或将用户设置为该变量)的好方法是什么?

Layout.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

推荐答案

我已经用Reaction Query的initialData解决了这个问题(比我想象的?简单).我仍然有一个问题,数据并不总是显示,但这将是与客户端react 查询相关的事情.对于那些对此感兴趣的人,您可以找到解决方案: https://github.com/lextoc/tracky-next/blob/main/app/layout.tsx#L67

Typescript相关问答推荐

如何使打包和拆包功能通用?

如何防止TypeScript允许重新分配NTFS?

替代语法/逻辑以避免TS变量被分配之前使用." "

为什么typescript要把这个空合并转换成三元?

类型脚本泛型最初推断然后设置

在键和值为ARGS的泛型函数中未正确推断类型

如何提取密钥及其对应的属性类型,以供在新类型中使用?

适当限制泛型函数中的记录

为什么在回调函数的参数中不使用类型保护?

为什么我的条件类型不能像我预期的那样工作?

TS2339:类型{}上不存在属性消息

如何使我的函数专门针对联合标记?

如何在处理数组时缩小几个派生类实例之间的类型范围?

限制返回联合的TS函数的返回类型

如何编辑切片器以使用CRUD调用函数?

编剧- Select 动态下拉选项

使用强制转换编写打字函数的惯用方法

打字:注解`是字符串`而不是`布尔`?

如何向我的自定义样式组件声明 custom.d.ts ?

Next 13 + React 18 createContext 类型的构建问题