Realm React Native - 需要迁移:目标类型' string'不存在属性' emailAddresses'

时间:2016-04-09 12:44:57

标签: javascript react-native realm

我正在使用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 docs中找到。

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

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

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

  

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

     
      
  • 对于属性string,目标类型emailAddresses不存在。
  •   

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

有没有人知道我为什么会遇到这个例外?

更新

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

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

我现在也将objectTypeemailAddresses的{​​{1}}更改为personSchema类型:

EmailAddress

现在,我不再获得例外了。是不是可以将属性添加到属于... emailAddresses: {type: 'list', objectType: 'EmailAddress'}, ... s列表的Realm类中?

1 个答案:

答案 0 :(得分:2)

Realm尚不支持基元列表。在它们之前,您需要像处理EmailAddress

一样在对象中包装基本类型