跳到主内容

Next.js 中 toast 和 router.push 冲突

小青年149 浏览
小青
小青年楼主
revalidatePath 不生效,检查:① 路径是否正确(含 locale 前缀) ② 是否在 Server Action 中调用(不能在普通函数中调用) ③ ISR 的 revalidate 时间是否太长 ④ 是否需要 revalidateTag 清除缓存。

Prisma enum 在 TypeScript 中报错,确保:① 运行了 prisma generate ② import { Prisma } from '@prisma/client' 取枚举值 ③ 不要用字符串字面量而用 Prisma.EnumType 枚举 ④ schema 中 enum 定义正确。

Zod refine 校验不触发,检查:① refine 是否在 schema 末尾 ② 是否用了 safeParse(parse 会抛错) ③ refine 的 path 是否正确指向字段 ④ 异步 refine 用 superRefine + async。
Next.js
查看历史

5 回复

  1. ET
    Ethan Brooks第 2 楼
    有个细节值得注意:next/dynamic + ssr:false 不能在 Server Component 用,要包一层 'use client'。我也还在探索中。
  2. CH
    Chloe Bennett第 3 楼
    这个问题我研究过一阵,revalidatePath 路径要含 locale 前缀,如 /zh/forum/thread/xxx。
  3. AN
    Anwar Hidayat第 4 楼
    我的团队是这样做的:next/dynamic + ssr:false 不能在 Server Component 用,要包一层 'use client'。欢迎大家补充。
  4. 听风
    听风者第 5 楼
    反对一下,我的测试结果不是这样:Prisma 连接池在 Serverless 环境设 connection_limit=1,加 ?pgbouncer=true。共同进步。
  5. 冲浪
    冲浪的海豹第 6 楼
    Tailwind v4 升级后 @tailwind 指令改为 @import 'tailwindcss'。
登录后可回复
    数据正在加载中…