我正在使用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
我现在也将objectType
中emailAddresses
的{{1}}更改为personSchema
类型:
EmailAddress
现在,我不再获得例外了。是不是可以将属性添加到属于...
emailAddresses: {type: 'list', objectType: 'EmailAddress'},
...
s列表的Realm类中?
答案 0 :(得分:2)
Realm尚不支持基元列表。在它们之前,您需要像处理EmailAddress