我有3条路线。当我从第一个移动到第二个时,我需要传递一个参数:
this.navCtrl.push(ReadyPage, { newGame: true });
但是当我从第3位移到第2位时,我也需要通过这个参数。
我正在尝试这个但是不起作用:
this.viewCtrl.dismiss({ newGame: true });
比较两种方法dismiss
似乎没有这个选项(除非它被称为data
而不是params
):
abstract push(page: Page | string, params?: any, opts?: NavOptions, done?: TransitionDoneFn): Promise<any>;
dismiss(data?: any, role?: string, navOptions?: NavOptions): Promise<any>;
答案 0 :(得分:12)
上一页:
this.navCtrl.getPrevious().data.newGame = true;
this.navCtrl.pop();
第2页:
ionViewWillEnter() {
this.newGame = this.navParams.get('newGame')|| null;
}
答案 1 :(得分:1)
如果您可以通过这种方式解决问题,请访问this,建议在从第3页返回到第2页时使用pop()
和params
转换时传递回调
// callback...
myCallbackFunction = function(_params) {
return new Promise((resolve, reject) => {
resolve();
});
}
// push page...
this.navController.push(OtherPageComponent, {
callback: myCallbackFunction
});
在OtherPageComponent中
this.callback = this.navParams.get("callback")
this.callback(param).then(()=>{
this.navController.pop();
});