Realm React Native-需要迁移:目标类型'字符串'不会'不存在于属性'电

Realm React Native - Migration is required: Target type 'string' doesn't exist for property 'emailAddresses'

本文关键字:于属性 不存在 不会 属性 字符串 React 迁移 目标 类型 Realm Native-      更新时间:2024-03-21

我正在使用React Native构建一个小型应用程序,并希望使用Realm实现持久性。

我为Person:定义了以下模式

const personSchema = {
  name: 'Person',
  properties: {
    familyName: {type: 'string', optional: true},
    givenName: {type: 'string'},
    middleName: {type: 'string', optional: true},
    emailAddresses: {type: 'list', objectType: 'string'},
  }
}
export class Person {}
Person.schema = personSchema

关于如何定义Realm模式的信息可以在Realm文档中找到。

然后我实例化DB,如下所示:

const schemas = [Person]
const db = new Realm({schema: schemas})

然而,当到达最后一行时有一个异常,给了我以下错误:

未处理的JS异常:由于以下原因需要迁移错误:

  • 属性emailAddresses的目标类型string不存在

我正在使用iOS模拟器进行测试,并多次删除该应用程序,然后使用Xcode中的播放按钮重新安装。

有人知道我为什么会得到这个例外吗?

更新

我现在为另一个数据库对象创建了一个单独的模式:EmailAdress

const emailAddressSchema = {
  name: 'EmailAddress',
  properties: {
    label: 'string',
    email: 'string'
  }
}
export class EmailAddress {}
EmailAddress.schema = emailAddressSchema

我还将personSchemaemailAddressesobjectType更改为EmailAddress类型:

...
emailAddresses: {type: 'list', objectType: 'EmailAddress'},
...

现在,我再也不例外了。难道不能将属性添加到作为string列表的Realm类中吗?

Realm中还不支持基元列表。在它们出现之前,您需要像使用EmailAddress 一样将基元类型包装在对象中