【问题标题】: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' "
  • 好的,我发现了我的错误:现在它可以工作了。无论如何感谢您的帮助!

标签: typescript ionic-framework ionic-native


【解决方案1】:

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

改为这样做:

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

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

this.storage = storage;

【讨论】:

  • 感谢您的建议!
猜你喜欢
  • 1970-01-01
  • 2020-02-10
  • 1970-01-01
  • 2018-12-24
  • 1970-01-01
  • 2020-12-05
  • 2019-06-20
  • 2023-03-05
相关资源
最近更新 更多