【发布时间】: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 中的emailAddresses 的objectType 更改为EmailAddress 类型:
...
emailAddresses: {type: 'list', objectType: 'EmailAddress'},
...
现在,我不再遇到异常了。是否可以将属性添加到作为strings 列表的 Realm 类?
【问题讨论】:
标签: javascript react-native realm