Next.js+Sanity项目Block富文本编辑器选项禁用且无法保存求助
解决Sanity Block富文本编辑器禁用且无法保存的问题
以下是针对该问题的排查和解决步骤:
确认Block Content Schema已正确注册
确保blockContent类型已添加到Sanity配置文件的schema.types数组中,这是最容易遗漏的关键步骤:// sanity.config.js/ts import { defineConfig } from 'sanity' import blockContent from './schemas/blockContent' import event from './schemas/event' export default defineConfig({ // 其他配置项 schema: { types: [event, blockContent], // 必须包含blockContent }, })统一Sanity核心包版本
隐性版本冲突也可能引发该问题,执行以下操作修复:- 删除依赖文件与锁文件:
rm -rf node_modules package-lock.json - 重新安装依赖:
npm install - 检查package.json中所有sanity相关包版本保持一致,例如:
"sanity": "^3.35.0", "@sanity/vision": "^3.35.0"
- 删除依赖文件与锁文件:
排查字段约束与验证规则
检查event schema中description字段是否设置了可能导致保存失败的验证规则,可暂时注释必填规则测试:defineField({ name: 'description', title: 'Event Description', description: 'A detailed description of the event, providing in-depth information. This content will be shown on the individual event page.', type: 'blockContent', // 暂时注释以下规则测试 // validation: Rule => Rule.required(), }),清除Studio缓存
缓存异常可能导致编辑器功能失效:- 停止当前Sanity Dev服务器
- 重新启动:
sanity dev - 浏览器强制刷新页面(Ctrl+Shift+R)并清除站点缓存
排查自定义插件冲突
如果当前项目安装了额外的Sanity插件,可能与默认Portable Text编辑器冲突,暂时移除非必要插件后重启Studio测试。
内容的提问来源于stack exchange,提问作者kunalkeshan
相关产品推荐
相关产品推荐

