我在构建时使用getStaticProps
加载数据。
export const getStaticProps: GetStaticProps = async () => {
const users = await prisma.user.findMany()
return {
props: { users }
}
}
我有一个创建新数据的表单:
const handleSubmit = async ({ name, score }) => {
const body = { name, email }
await fetch(`http://localhost:3000/api/users/post`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(body)
}
}
提交表单后,我想重新获取用户,以实时显示新的一个,而不需要重新加载页面。
在Apollo Client
中,有一个名为refetchQueries
的函数,它可以很容易地做到这一点,即在发生突变时重新运行graphQL
查询。这里有没有一种方法可以做类似的事情,使用不带graphQL的普通NextJs+Prisma?
发布于 2021-09-25 23:59:59
你要找的是Incremental Static Regeneration (ISR)
export const getStaticProps: GetStaticProps = async () => {
const users = await prisma.user.findMany()
return {
props: { users },
revalidate: 60,
}
}
您可以定义每页的revalidation
时间(例如60秒)。初始请求将显示缓存的页面,当数据更新时,Next.js将使用更新后的数据触发重建。
https://stackoverflow.com/questions/69329412
复制相似问题