拓扑森林
首页OPC课程政企培训专属智能体项目投融资行业资讯站内论坛关于我们
登录
跳到主内容
    论坛/求助问答

    Zod 校验错误消息不显示在表单上

    小青年·2026/06/04 17:22:58·0 浏览
    站内论坛
    教程论坛排行榜徽章
    小青
    小青年楼主
    2026/06/04 17:22:58
    Zod 校验错误消息不显示,检查:① form 表单是否关联了错误状态 ② Zod schema 的错误消息是否用了 i18n 键 ③ Server Action 是否返回了 error 字段 ④ 表单组件是否读取了 result.error 并显示。
    
    Vercel 构建时 TypeScript 检查失败,可以在 next.config.ts 中设置 typescript.ignoreBuildErrors = true 临时跳过,但不推荐。正确做法:本地运行 npm run typecheck 修复所有类型错误后再部署。
    
    next-intl 翻译键缺失不报错是默认行为。要启用严格模式:在 next-intl 配置中设置 onError 回调,或用 getTranslations 时检查返回值。开发环境建议开启严格模式及早发现缺失键。
    
    Auth.js JWT token 中字段不更新,因为 JWT 是有状态的快照。修改用户字段后需要用 useSession().update() 刷新客户端 session,同时 JWT callback 中处理 trigger === 'update' 从 DB 读取最新值更新 token。
    
    Tailwind v4 升级后样式失效,大版本升级有 breaking changes。检查:① tailwind.config.ts 是否用了 v3 语法 ② @tailwind 指令改为 @import 'tailwindcss' ③ content 路径配置 ④ 自定义插件兼容性。建议看官方迁移指南。
    查看历史

    11 回复

    1. 并发
      并发摆渡人第 2 楼2026/06/10 10:53:53
      从另一个角度看:next/dynamic + ssr:false 不能在 Server Component 用,要包一层 'use client'。
    2. 大叔
      大叔第 3 楼2026/06/12 21:44:55
      next/dynamic + ssr:false 不能在 Server Component 用,要包一层 'use client'。
    3. 林间
      林间晨露第 4 楼2026/06/21 03:53:23
      有个更优的方案:Tailwind v4 升级后 @tailwind 指令改为 @import 'tailwindcss'。
    4. 打盹
      打盹的考拉第 5 楼2026/06/27 00:58:36
      我的理解是:Auth.js JWT 不更新是因为没处理 trigger === 'update',要加 useSession().update()。共同进步。
    5. 深夜
      深夜码农第 6 楼2026/06/28 12:04:57
      Server Action 提交后不跳转,用 window.location.href 替代 router.push。
    6. ST
      Stack Overflow copy手第 7 楼2026/07/09 21:15:04
      补充一个可能被忽略的点:Vercel 环境变量改了要重新部署才生效,NEXT_PUBLIC_ 变量尤其如此。实践出真知,建议动手试试。
    7. 数星
      数星星第 8 楼2026/07/12 13:25:11
      上周刚好踩了这个坑,cookies().set() + redirect() 在 Server Component 不兼容,改用 Server Action。欢迎私信深入交流。
    8. 观星
      观星者第 9 楼2026/07/14 11:54:15
      从另一个角度看:next/dynamic + ssr:false 不能在 Server Component 用,要包一层 'use client'。后续有新发现再来更新。
    9. 精神
      精神小伙第 10 楼2026/07/16 02:01:43
      补充一点:next/dynamic + ssr:false 不能在 Server Component 用,要包一层 'use client'。踩了很多坑才总结出来的。
    10. 注释
      注释写故事第 11 楼2026/07/27 19:14:18
      实操中我发现:middleware 里 pathname 含 locale 前缀,用 includes() 不要用精确匹配。希望对你有帮助。
    11. 回滚
      回滚艺术家第 12 楼2026/07/30 18:24:48
      补充一个可能被忽略的点:Prisma 连接池在 Serverless 环境设 connection_limit=1,加 ?pgbouncer=true。感谢楼主的启发。
    登录后可回复
    小青

    小青年

    楼主个人主页

    帖子信息

    11 回复
    0 浏览
    2 赞
    0 收藏
    回复