gpt4 book ai didi

javascript - RealmJS - 显示代理对象而不是对象列表

转载 作者:数据小太阳 更新时间:2023-10-29 05:43:10 25 4
gpt4 key购买 nike

我正在使用 Realm JS和我的 React Native应用程序。我在我的架构中插入了一个值,如下所示。

const CarSchema = {
name: 'Car',
properties: {
model: 'string'
}
};

let realm = new Realm({schema: [CarSchema]});
realm.write(() => {
realm.create('Car', {
model: 'Ford'
});
});

let cars = realm.objects('Car');
console.log(cars);

在 Chrome 控制台中,我得到以下对象而不是数据库中的所有汽车。

enter image description here

我是不是漏掉了什么?

最佳答案

这是 Realm 对象(以及列表和结果)工作方式的结果 - Realm 不是从数据库中提取数据并反序列化(可能)大量对象,而是为您提供延迟加载的对象和集合。 Realm.objects('Car') 不返回一个 JavaScript 数组,而是一个 Results 对象——它的行为仍然完全像一个数组,但它不是使用内置的实现的- 输入数组对象。这就是为什么它在 Chrome 控制台中看起来不像对象数组,尽管它们的行为相同。

但是,您可以使用 Array.from(realm.objects('Car')) 急切地读取数组中的 Realm 集合,这将在调试器中显示得更好。

背景

“代理”对象是 Realm 及其零拷贝哲学的基石。所有 Realm SDK 都是以相同的方式实现的——您将获得直接访问数据库的代理对象,而不是经过序列化和反序列化的普通对象。

在 realm-js 中,实际的代理机制根据您的代码是在 React Native、Node.js 还是 React Native Chrome 调试器上运行而有所不同,因此这些代理的实现细节会有所不同。

所有这一切的问题在于它在 JavaScript 调试器中的显示效果不佳。不幸的是,我不知道有什么方法可以影响 Chrome 在调试器中显示对象的方式。

资料来源:我是一名 realm-js 贡献者。

关于javascript - RealmJS - 显示代理对象而不是对象列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42188554/

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