服务器组件在应用程序路由器nextjs 13.5+中禁用缓存

vlf7wbxs  于 11个月前  发布在  其他
关注(0)|答案(2)|浏览(109)

我有一个配置文件屏幕,它基于cookie呈现。当cookie不存在或无效时,它会呈现登录链接。然后当用户登录并返回配置文件页面时,它还会呈现登录链接,直到用户刷新页面。
我的理解告诉我,浏览器正在缓存页面。
那么我如何才能禁用此页面被缓存在浏览器中?
这是我的代码
👇👇👇👇👇👇👇👇👇

import Link from 'next/link';
import { cookies } from 'next/headers';
import getTokenData from '@/helper/token';

const ProfilePage = ({ params }) => {
const incomingToken = cookies()?.get('token')?.value;

const tokenDecode = getTokenData(incomingToken);

if (tokenDecode.success && tokenDecode?.data?.isAdmin) {
return (
    <Frame>
        // some component
    </Frame>
);
}

if (tokenDecode.success) {
return (
    <Frame>
        // some component
    </Frame>
);
}

return (
    <Frame>
        // some component
    </Frame>
);
};

字符串

emeijp43

emeijp431#

如果在刷新页面时问题解决了,也许你可以在登录后使用location.reload()(JavaScript)刷新页面。我不知道这对你是否有用。

c9qzyr3d

c9qzyr3d2#

const tokenDecode = getTokenData(incomingToken); API调用中,如果您使用的是fetch,则可以通过在url后添加{ cache: 'no-store' }来禁用缓存
参考:在接下来的13个应用程序路由器中选择退出缓存

相关问题