gpt4 book ai didi

javascript - Realm React Native - 需要迁移 : Target type 'string' doesn't exist for property 'emailAddresses'

转载 作者:行者123 更新时间:2023-11-29 21:30:53 24 4
gpt4 key购买 nike

我正在使用 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})

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

Unhandled JS Exception: Migration is required due to the following errors:

  • Target type string doesn't exist for property emailAddresses.

我正在使用 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

那样将原始类型包装在对象中

关于javascript - Realm React Native - 需要迁移 : Target type 'string' doesn't exist for property 'emailAddresses' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36516924/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com