加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

react-native – Realm React Native – 如何更新循环中的多个对

发布时间:2020-12-15 05:05:50 所属栏目:百科 来源:网络整理
导读:我试图更新realm中的多个对象使用for循环反应原生如下: let pendingReadings = database.objects('Readings').filtered('synced = false');database.write(() = { for (var k=0;kpendingReadings.length;k++) { pendingReadings[k].synced = true; }}); 结
我试图更新realm中的多个对象使用for循环反应原生如下:
let pendingReadings = database.objects('Readings').filtered('synced = false');
database.write(() => {
    for (var k=0;k<pendingReadings.length;k++) {
        pendingReadings[k].synced = true;
    }
});

结果应该标记所有读数同步为真.但是,它仅将备选对象标记为已同步(可能在下一个请求进入时,先前的写入未完成).一次更新所有条目的最佳方法是什么?

Realm的查询结果是实时更新.有多种方法可以调整循环来解决这个问题,但是通过在结果上使用 snapshot()方法可以获得最佳性能……
let pendingReadings = database.objects('Readings')
                              .filtered('synced = false')
                              .snapshot();
database.write(() => {
    for (let i = 0,len = pendingReadings.length; i < len; i++) {
        pendingReadings[i].synced = true;
    }
});

另请注意,我将循环调整为仅检索一次长度,这也会略微提高性能.如果您愿意,可以使用带有Realm集合的循环…,尽管与上面的“原始”循环相比,这样做会有轻微的性能损失.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读