You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何使用realm-react加载Realm对象到FlatList需用扩展运算符?

问题原因

useQuery返回的是Realm的QueryResults对象,它是一个可迭代集合,但并非标准JavaScript数组。你使用的依赖版本(@realm/react@0.4.3 + realm@11.4.0)中,这个对象未完全实现FlatList的data属性所需的数组接口,导致FlatList无法正确识别并渲染数据。而你参考的示例大概率使用了更新版本的依赖,新版本已优化QueryResults的兼容性,支持直接传入FlatList。

解决方案

1. 升级依赖(推荐)

升级到较新的稳定版依赖,新版本已修复该兼容性问题:

{
  "@realm/react": "^0.6.2",
  "realm": "^12.11.0"
}

升级后直接使用data={locations}即可正常渲染。

2. 兼容旧版本的转换方法

如果暂时无法升级,可通过以下方式将QueryResults转为数组,效果和扩展运算符一致:

  • 使用Array.from():
data={Array.from(locations)}
  • 调用QueryResults的slice()方法:
data={locations.slice()}

3. 确认Realm配置正确性

检查你的AppRealm.ts是否正确注册了LocationRealm模型:

import { createRealmContext } from '@realm/react';
import { LocationRealm } from './models/LocationRealm';

const RealmContext = createRealmContext({
  schema: [LocationRealm], // 确保模型已加入schema
});

export default RealmContext;

内容的提问来源于stack exchange,提问作者Daniel Hignell

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 07:05:19