NavController #push不会在iOS模拟器上更改页面

时间:2016-07-29 20:12:06

标签: ios typescript angular ios-simulator ionic2

我正在使用Ionic 2并且在iOS simulator中导航工作时出现问题。这是一个简化的代码段:

import {Component} from '@angular/core';
import {NavController, NavParams} from 'ionic-angular';

@Component({
  template: `
      <pre>{{ state | json }}</pre>
      <ion-select (ionChange)="selectState($event)">
        <ion-option>State 1</ion-option>
        <ion-option>State 2</ion-option>
      </ion-select>
  `
})
export class StatePage {
  private state;
  constructor(private nav: NavController) {}

  selectState(state) {
    this.state = state;
    console.log("before navigation");
    this.nav.push(BaseCodePage, { state });
    console.log("after navigation");
  }
}

@Component({
  templateUrl: 'build/pages/registration/base-code/base-code.html'
})
export class BaseCodePage {
  constructor(
      private nav: NavController,
      params: NavParams
  ) {
    console.log("initializing BaseCodePage, received", params.get('state'));
  }
}

从界面中选择State 1并触发selectState后,所有消息都会显示:before navigationinitializing BaseCodePage, received State 1after navigation,这意味着下一个组件已实例化。此后没有错误消息或任何其他输出。选定的状态也会通过<pre>{{ state | json }}</pre>在屏幕上呈现。但是,此时应用程序冻结,我无法再单击选择,并且下一个组件不会被渲染。

我已经在网络版和Android版中对此进行了测试,两者都运行良好。不幸的是我无法在iPhone上测试它,因为我没有Mac并且我正在为客户端进行远程调试,所以现在我只能声称它在iOS模拟器中不起作用。

有人有这个问题吗?任何进一步调试的提示,因为没有错误信息?

谢谢!

0 个答案:

没有答案