Realm Error: “JS value must be of type: number”

最近在做一个 React Native APP PasswordAssistant 的时候,需要用到数据持久化存储,最终选择用Realm。

在设置ream对象的schema时,我设置了一个主键(primaryKey) “id”,

设置shema

在执行realm.create(),并没有设置id的值。

未给主键(primaryKey)赋值

导致报错:Realm Error: “JS value must be of type: number” 。

由于习惯性的认为realm的主键像一般数据库一样,可以设置自增加的主键,因为没有查到realm如何设置自增加的主键,便理所当然的认为,设置了主键realm便会默认自增加。实践证明,too young,too naive。事实上,官方文档中:"You can specify the primaryKey property in an object model for string and int properties",既然主键可以是字符串类型,也就意味着,realm的主键不会默认为整型类型一样自增长。

所以,既然设置的主键,在执行realm.create()时,就要给主键赋值,即使将主键的属性 optional设为true,也不可不赋值。另外,主键的值必须是唯一的。

给主键(primaryKey)赋值

stackoverflow

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容