我试图使用nextjs服务器端获取我的类别数据并将其设置在输入中,以便用户可以看到当前的类别数据,并能够编辑和输入新值。然而,当用户编辑类别时,他通过推送重定向到显示所有类别的页面,当他单击菜单时,他使用推送重定向到编辑路由,在服务器端,在编辑路由中获取类别并按照我之前所说的做,但第一次它工作。在第二个中,它在30秒后工作,我相信这可能是缓存。我在文档中看到他们默认使用fetch,它具有禁用该高速缓存的功能,但我之前测试过它并不成功,但我想继续使用axios,因为它有一个拦截器功能,使它更容易。
科迪哥:
import { Api } from "@/utils";
import { EditCategoryLayout } from "./@root";
import { notFound } from "next/navigation";
type PageProps = {
params: {
categoryId: string
},
searchParams: {}
}
const getData = async (categoryId: string) => {
return await Api.get('/store/category', {
params: {
categoryId
}
});
}
export default async function DashboardEditCategory(props: PageProps) {
const { categoryId } = props.params;
const req = await getData(categoryId);
if (req.status !== 200 || req.data.error) notFound();
return (
<EditCategoryLayout id={categoryId} {...req.data as any} />
)
}
字符串
缓存nextjs的问题
1条答案
按热度按时间7gcisfzg1#
默认情况下,NextJs总是缓存GET方法。如果你想选择退出缓存,你的API路由需要使用以下之一:
1.通过GET方法使用Request对象。阅读更多选择退出缓存
1.通过使用Route Segment Config选择退出缓存整个路由