【问题标题】:Realm React Native - Migration is required: Target type 'string' doesn't exist for property 'emailAddresses'Realm React Native - 需要迁移:属性“emailAddresses”的目标类型“字符串”不存在
【发布时间】:2016-04-09 12:44:57
【问题描述】:

我正在使用 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 docs 中找到有关如何定义 Realm 架构的信息。

然后我像这样实例化数据库:

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

但是,到达最后一行时出现异常,出现以下错误:

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

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

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

有人知道我为什么会收到此异常吗?

更新

我现在为另一个 db 对象创建了一个单独的架构:EmailAdress

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

我现在还将personSchema 中的emailAddressesobjectType 更改为EmailAddress 类型:

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

现在,我不再遇到异常了。是否可以将属性添加到作为strings 列表的 Realm 类?

【问题讨论】:

    标签: javascript react-native realm


    【解决方案1】:

    Realm 还不支持原语列表。在它们之前,您需要像使用 EmailAddress 一样将原始类型包装在一个对象中

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-22
      • 1970-01-01
      • 2017-09-25
      • 1970-01-01
      • 1970-01-01
      • 2021-11-27
      • 1970-01-01
      • 2019-08-26
      相关资源
      最近更新 更多