【问题标题】:LocalForage - push multiple items in arrayLocalForage - 在数组中推送多个项目
【发布时间】:2017-10-03 06:38:42
【问题描述】:

我想在一个数组中推送多个项目,否则项目会被覆盖。

所以我认为我可以这样做:

   localForage.getItem("data", (err, results) => {
        console.log('results', results)
        // var dataArray = results ? results : [];
        // data.push(results);
        this.dataArray.push(results);
        localForage.setItem("data", results);
        console.log(localForage.getItem("data"));
    })

但这将替换最后一项,我怎样才能在那个 dataArray 中推送多个 localForage 项?

【问题讨论】:

  • 这意味着results 不是一个数组。
  • 如果结果是真实的,但不是数组或其他带有推送方法的东西,这将发生。你为什么不设置一个断点或记录它,这样你就可以看到它实际上是什么。
  • 我试过了,但我不明白为什么.. 我有一个 codepen:codepen.io/anon/pen/QvqjXK
  • 发生的事情是,在某些时候,您存储了一些不是数组的东西。现在该值已缓存在 indexedDB 中,您需要清除它。
  • @AluanHaddad 我尝试了.removeItem 函数,但它仍然无法正常工作,正如你所见,我更新了我的答案并设法记录了它,但现在每次执行该函数时它都会被覆盖..

标签: javascript typescript ionic2 localforage


【解决方案1】:

我刚刚用 localForage 对此进行了测试,它可以工作:

假设 var dataArray = [with some data]

1) 如何将现有的 dataArray 替换为 localForage 中的数据

localForage.getItem("data").then((results) => { dataArray = [].concat(results); });

2) 如何将 localForage 中的数据添加到现有的 dataArray 中

localForage.getItem("data").then((results) => { dataArray = dataArray.concat(results); });

3) 如何添加到你在 localForage 中的内容

localForage.getItem("data").then((result) => {
    dataArray = dataArray.concat(result);
    localForage.removeItem("data");
    localForage.setItem("data", dataArray);
  });

希望对你有帮助。

【讨论】:

  • 马上试试
  • 你在哪里设置的项目?因为当我记录结果时它返回 null
  • 因为当我使用你的代码行时,它仍然会被覆盖
  • 你能帮我解决这个问题吗?
  • 嗨@Sreinieren,我已经更新了我的答案。根据这个问题,也许我不明白您要达到的目标。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-22
  • 1970-01-01
  • 1970-01-01
  • 2016-11-04
  • 2015-11-15
相关资源
最近更新 更多