【问题标题】:Error in class MyApp - caused by: Cannot read property 'setRoot' of undefinedMyApp 类中的错误 - 原因是:无法读取未定义的属性“setRoot”
【发布时间】:2017-02-27 03:04:48
【问题描述】:

我刚刚使用ionic g page activities 创建了一个ActivitiesPage。以下是 CLI 生成的默认页面。

ActivitiesPage (activities.ts)

// imports..

@Component({
  selector: 'page-activities',
  templateUrl: 'activities.html'
})
export class ActivitiesPage {
  constructor(public navCtrl: NavController, public navParams: NavParams){}
}

我设置了一个侧边菜单,用户可以在其中从页面列表中选择Activities

Class MyApp (app.component.ts)

import { ActivitiesPage } from '../pages/activities/activities';
// other imports

@Component({
  templateUrl: 'app.html',
})
export class MyApp
{
  @ViewChild(NavController) navCtrl: NavController;
  rootPage = LoginPage; // TabsPage for bottom nav tabs
  activitiesPage: any = ActivitiesPage;

  constructor(public platform: Platform) {
    platform.ready().then(() => {
      // Okay, so the platform is ready and our plugins are available.
      // Here you can do any higher level native things you might need.
      StatusBar.styleDefault();
      Splashscreen.hide();
    });
  }

  openPage(page: any)
  {
    this.navCtrl.setRoot(page);
  }

}

App Template (app.html)

<ion-menu [content]="content">
  <ion-header>
    <ion-toolbar>
      <ion-title>RnB MENU</ion-title>
    </ion-toolbar>
  </ion-header>
  <ion-content>
    <ion-list>

      <button ion-item (click)="openPage(HomePage)">
        <ion-icon name="home"></ion-icon>&nbsp;&nbsp;
         Home
      </button>

      <button ion-item (click)="openPage(MessagesPage)">
        <ion-icon name="chatboxes"></ion-icon>&nbsp;&nbsp;
        Messages
      </button>

      <button ion-item (click)="openPage(ActivitiesPage)">
        <ion-icon name="analytics"></ion-icon>&nbsp;&nbsp;
        Activities
      </button>

     </ion-list>
  </ion-content>
</ion-menu>

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

当我尝试通过菜单打开 ActivitiesPage 时出现以下错误。

./MyApp 类 MyApp 中的错误 - 原因:无法读取未定义的属性“setRoot”

【问题讨论】:

    标签: ionic2


    【解决方案1】:

    此错误似乎是由于 MyApp 类中的 navCtrl 类成员未初始化这一事实而出现的。

    尝试更改类MyAppnavCtrl的定义如下:

    @ViewChild('content') navCtrl: NavController;
    

    【讨论】:

    • 谢谢,成功了!
    猜你喜欢
    • 2018-08-10
    • 1970-01-01
    • 1970-01-01
    • 2018-04-29
    • 1970-01-01
    • 2017-08-12
    • 2021-03-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多