- 当我刷新我的localhost页面,新添加到数据库的数据是可见的
- 当我刷新生产页面时,数据不会更新(部署时相同)
我不知道为什么数据不被重新加载到生产上。使用NextJS APP文件夹,Prisma,部署throw Vercel,Planetscale作为数据库。它看起来像web是一个缓存。如何使它工作?
import { PrismaClient } from '@prisma/client';
const prisma = new PrismaClient();
async function getFighters() {
const fighters = await prisma.fighter.findMany({
where: {
fightBlue: null,
fightRed: null
}
});
return fighters;
}
async function UsersPage() {
const fighters = await getFighters()
return (...);
}
export default UsersPage;
字符串
更新:新增
export const dynamic = 'force-dynamic'
型
当页面刷新(F5)时,帮助重新加载数据。当我点击导航栏中的链接时,它不会重新加载数据。这种情况下,我应该使用一些阶段管理库,如Redux吗?
2条答案
按热度按时间g6ll5ycj1#
我最近也遇到了类似的问题。
默认情况下,Next.js静态呈现每个路由,为了克服这种行为,您需要显式地将组件声明为动态组件
字符串
这确保了组件总是在被请求时动态呈现,这意味着Prisma调用应该再次运行,每次刷新时都会获取新数据。
m528fe3b2#
尝试revalidatePath并验证next.js的参数。
字符串
如果要缓存数据,您可能需要将validate value设置为n秒。将其设置为零意味着选择退出缓存。