React Native中如何使用Realm存储包含多种类型元素的数组
Realm存储多类型混合数组的正确配置方案
返回null的常见原因及解决方式:
- 最常见的原因是你之前已经用
string[]类型创建过该表的Schema,修改类型后没有执行迁移操作。开发阶段可以直接卸载重装App清除旧数据验证,生产环境需要配置Schema版本和迁移逻辑。 - 部分低版本Realm对mixed数组的支持存在缺陷,建议升级到Realm v10.0及以上稳定版本。
正确Schema配置
export const Schema = { name: 'Schema', primaryKey: 'id', properties: { id: 'int', name: {type: 'string', indexed: true}, field: 'mixed[]' // 正确配置多类型混合数组 } }
操作示例
数据插入
realm.write(() => { realm.create('Schema', { id: 1, name: '测试数据', field: [783, "Name of"] }) })
数据查询
查询返回的数组会保留原始元素类型,不需要额外转换:
const result = realm.objects('Schema').filtered('id = 1')[0]; console.log(result.field) // 输出 [783, "Name of"]
异常排查点
如果配置后仍然异常,可按以下顺序排查:
- 确认你定义的Schema已经正确注册到Realm实例的配置数组中
- 确认写入操作是在write事务内执行的,没有抛出隐藏异常
内容的提问来源于stack exchange,提问作者Dridi 93
相关产品推荐
相关产品推荐

