gpt4 book ai didi

javascript - 识别用户的 ionic 事件来自 navCtrl.pop()

转载 作者:行者123 更新时间:2023-11-30 14:38:02 25 4
gpt4 key购买 nike

我有三个页面,分别命名为 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com