离子存储和变量

Posted

技术标签:

【中文标题】离子存储和变量【英文标题】:Ionic Storage and variables 【发布时间】:2018-02-19 19:54:05 【问题描述】:

我是 Ionic 平台的第一次学生,显然我在第一个应用程序的一小部分上遇到了一些问题。我想在按钮中有一个简单的计数器:单击此按钮时,计数器增加 1。然后我使用 Storage 保存该值,并使用“storage.get”在另一个页面中检索相同的值。

这是代码:

constructor(public storage:Storage, public platform: Platform)
  this.storage = storage;
  

  ionViewDidLoad() 
    console.log("I'm alive!");
    this.counter = this.storage.get("Count").then((data)=>
        console.log(data);
    );
  

  public counter = 0;

  count()
      this.counter+=1;
      this.storage.set("Count",this.counter);
  

当我重新打开应用程序时,我尝试使用存储的值继续递增计数器,但它又从 0 开始:如何使用存储的值递增计数器的变量?

感谢您的支持!

【问题讨论】:

当您获得 Count 的值时,您只是将其记录到控制台。您是否尝试过设置计数器的值......“this.counter = data;”在 then 函数里面?而不是 console.log(data)。 抱歉,我粘贴了错误的代码:是的,我尝试编写“this.counter = data”,但是当我使用“ionic serve”测试应用程序时,它显示此错误: ""类型 promise 不能分配给类型 'number' " 好的,我发现了我的错误:现在它可以工作了。无论如何感谢您的帮助! 【参考方案1】:

您正在将 this.counter 设置为 promise 调用。

改为这样做:

this.storage.get("Count").then((data)=>
   this.counter = data;
);

另外,一旦你在构造函数中声明了一个公共注入,你就不需要在构造函数中再次设置它。它会自动与类的实例一起使用。基本上,你不需要这个。

this.storage = storage;

【讨论】:

感谢您的建议!

以上是关于离子存储和变量的主要内容,如果未能解决你的问题,请参考以下文章

在离子本地通知中访问构造函数内部的变量

离子2 - 如何管理全局变量?

离子输入值 [(ngModel)] 没有随着相对组件成员变量的变化而更新

为什么在构造函数中初始化的成员变量会在离子角的ngInit中未定义?

如何在离子中获取输入文本值

离子项目构建错误