我正在尝试在应用程序中使用nativestorage(https://github.com/TheCocoaProject/cordova-plugin-nativestorage)。

一切都很好,我可以构建该应用程序。

在我的app.components.ts中,我有这个

this.setRootPage();


this.platform.ready().then(()的末尾

哪个依次调用该函数

setRootPage() {

 //intro skip if value is set

  this.nativeStorage.getItem("intro").then((intro) => {
  if (intro) {
    this.rootPage = Category1Page;
  } else {
    this.rootPage = IntroPage;
  }
});

  }


在IOS模拟器和使用Error: Uncaught (in promise): [object Object]的浏览器上运行应用程序ionic cordova run browser时,我最终都出错

非常感谢您的帮助

离子信息

cli packages: (/usr/local/lib/node_modules)

    @ionic/cli-utils  : 1.12.0
    ionic (Ionic CLI) : 3.12.0

global packages:

    cordova (Cordova CLI) : 7.0.1

local packages:

    @ionic/app-scripts : 1.3.7
    Cordova Platforms  : android 6.2.3 browser 4.1.0 ios 4.4.0
    Ionic Framework    : ionic-angular 3.3.0

System:

    ios-deploy : 1.9.2
    Node       : v6.11.2
    npm        : 3.10.10
    OS         : macOS High Sierra
    Xcode      : Xcode 9.0 Build version 9A235

Misc:

    backend : pro

最佳答案

我认为您不能只是动态更改rootPage变量来设置NavController的根。首先,确保rootPage具有初始值(也许是空白页)。然后,要在NavController中使用app.component,必须将模板变量添加到ion-nav模板中:

<ion-nav #Nav [root]="rootPage"></ion-nav>


并使用ViewChild添加参考:

@ViewChild('Nav') nav: NavController;


然后,您可以按以下方式修改setRootPage函数:

this.nativeStorage.getItem("intro").then((intro) => {
  if (intro) {
    this.nav.setRoot(Category1Page);
  } else {
    this.nav.setRoot(IntroPage);
  }
}, (error) => {
  this.nav.setRoot(IntroPage);
});

关于ios - ionic NativeStorage错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46643461/

10-13 01:54