我有三个页面,分别命名为 page1、page2 和 page3
他们的导航将是 page1->page2->page3
我们如何在 page2 上识别用户是通过 NavController Push 或 Pop 功能访问该页面的。
我只是想在 page2 上触发一个函数,只有当他们在 page3 上执行某些操作并通过 navCtrl.pop() 函数重定向到 page2 时。
我知道我可以在 ionViewWillEnter 中为导航堆栈中的最后一个 View 名称添加条件,因为每次用户访问第 2 页时都会触发它。但是如果有任何其他替代或好的方法可以做到这一点。请告诉我
谢谢
最佳答案
识别我们是否使用 push
访问页面很容易,因为它是将参数从 parent
传递给 child
的标准方式navCtrl.push(PageName, parameters)
我认为您要问的是如何做相反的事情:将值从 child
传回给 parent
。
下面是一个解决方案(详见 this link):
在 parent 中,代替正常的 push
函数,创建一个新的 promise,在 then
部分,您可以从 child 获取一个参数。
在子进程中,在 pop()
调用它的 then
之后,通过你最初创建的 promise 的 resolve 传递一个参数给父进程。
父级
new Promise((resolve, reject) => {
this.nav.push(ChildPage, {resolve: resolve});
}).then(data => {
// process data
});
child
this.nav.pop().then(() => this.params.get('resolve')('some data'))
我已经多次使用上述解决方案。还有这个替代解决方案,但我自己没有测试过:
https://forum.ionicframework.com/t/solved-ionic-navcontroller-pop-with-params/58104/3
关于javascript - 识别用户的 ionic 事件来自 navCtrl.pop(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50117129/