Next.js 中的读取函数在创建或删除操作后不返回更新的数据

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

我使用应用程序文件夹中的 Next.js 13 开发了一个待办事项列表应用程序。我使用 Next.js 编写了客户端和服务器端代码。我可以使用读取、创建和删除功能创建、删除和查看待办事项。我不需要添加更新功能。我使用 MongoDB 来存储待办事项。

我在 Vercel 上部署了该应用程序,网址为 https://next-todolist-app.vercel.app/

但是,有一个问题。当我在本地运行该项目时,创建、删除和读取功能工作正常。但是当我将项目部署到 Vercel 时,只有创建和删除功能有效。

当我在输入字段中输入待办事项的文本并单击创建按钮时,屏幕上没有显示任何内容。但是,当我打开浏览器的开发工具并检查网络选项卡时,我可以看到创建功能已成功执行,并且待办事项已保存在数据库中。同样的情况适用于删除功能,但我不能说同样的情况适用于读取功能。

读取函数在每次删除和创建操作后运行,但它总是返回相同的数据,没有任何错误。它会继续返回相同的数据,直到我重建项目。

我正在使用 Next.js 的 fetch 函数提供的

{ cache: "no-store" }
选项专门用于读取操作,但它没有帮助。

我已经尝试解决这个问题好几天了,但还没有找到解决方案。

有人有想法吗?

我希望读取函数返回最新的数据。

回购:https://github.com/aliblackeye/next-todo-app

reactjs caching next.js
2个回答
0
投票

更新:我添加了“export const revalidate = 0;”行到我编写列表服务的route.ts文件,问题就解决了。

代码:https://github.com/aliblackeye/next-todo-app/blob/master/app/api/todos/read/route.ts#LL1


0
投票

同样的问题,我在构建中将我的 api 路由 ○(静态)

/api/todo 
转换为 λ(动态)
/api/todo

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