用于识别用户的离子事件来自navCtrl.pop()



我有三个页面分别命名为page1,page2和page3

他们的导航将是第1页->第2页->第3页

我们如何在第 2 页上识别用户通过 NavController 推送或弹出功能进入此页面。

我只想仅在他们在第 2 页上执行某些操作并通过 navCtrl.pop(( 函数重定向到 page2 时才触发第 2 页上的函数。

我知道我可以在 ionViewWillEnter 中输入导航堆栈中最后一个视图名称的条件,因为每次用户在第 2 页上时都会触发它。但是,如果有任何其他替代方法或好方法可以做到这一点。请让我知道

谢谢

识别我们是否使用 push 来到一个页面很容易,因为它是将参数从 parent 传递到 child 的标准方式navCtrl.push(PageName, parameters)

我认为您要问的是如何做相反的事情:将值从child传递回parent

以下是解决方案(有关详细信息,请参阅此链接(:

在 parent 中,而不是正常的 push 函数,创建一个新的 promise,在 then 部分中,你可以从子节点那里获取一个参数。

在 child 中,pop()调用其 then 后,并通过您最初创建的承诺的解析将参数传递给父级。

父母

new Promise((resolve, reject) => {
  this.nav.push(ChildPage, {resolve: resolve});
}).then(data => {
  // process data
});

孩子

this.nav.pop().then(() => this.params.get('resolve')('some data'))

我已经多次使用上述解决方案。还有这个替代解决方案,但我自己还没有测试过:

https://forum.ionicframework.com/t/solved-ionic-navcontroller-pop-with-params/58104/3

我正在使用globalThis['datatoinput']输入数据,然后在父页面上使用ionViewDidEnter来读取globalThis['datatoinput']

最新更新