WatermelonDB同步功能报[Diagnostic error: Passed undefined to query]错误如何解决
问题原因
该报错是WatermelonDB同步逻辑查询对应记录时传入了空值导致,核心原因是同步返回的记录未匹配表的主键规则。
修复步骤
- 方案1:显式指定表主键
WatermelonDB默认主键名为id,你当前表使用sub_workspace_id作为主键,需要在对应Model类中声明主键字段:
import { Model } from '@nozbe/watermelondb' export default class SubWorkspace extends Model { static table = 'sub_workspaces' // 新增这行指定自定义主键 static idColumn = 'sub_workspace_id' }
- 方案2:同步数据补充默认主键字段
如果不想修改Model配置,直接在pull返回的created数组的每条记录中新增id字段,值和sub_workspace_id保持一致即可:
created: [ { id: 57, // 新增默认主键字段 sub_workspace_id: 57, name: "Teiu", avatar_url: "-", slug: "teiu", workspace_id: 19, }, ]
- 额外检查:你当前定义的schema名称存在拼写错误
subWorskapceSchema,请确认注册schema时的名称和定义一致,避免触发隐性的表找不到问题。
内容的提问来源于stack exchange,提问作者caiquegl
相关产品推荐
相关产品推荐

