我有三个页面,分别为page1,page2和page3
,他们的导航将是page1-> page2-> page3
我们如何通过NavController推送或弹出功能在第2页上识别用户来到此页面。
我只是想在第2页上触发一个函数,只要它们在第3页上执行某些操作并通过navCtrl.pop()函数重定向到第2页。
我知道我可以在ionViewWillEnter中输入条件来获取导航堆栈中的最后一个视图名称,因为每次用户都在第2页时会触发它。但是,如果有任何其他替代或好方法来做到这一点。请让我知道
谢谢
答案 0 :(得分:2)
确定我们是否使用push
来到某个网页很容易,因为这是在parent
child
传递到navCtrl.push(PageName, parameters)
的标准方法
我认为您要问的是如何做相反的事情:将值从child
传递回parent
。
以下是此解决方案(有关详细信息,请参阅this link):
在父级中,而不是正常的push
函数,创建一个新的承诺,并在then
部分中,您可以从子级获取参数。
在小孩中,在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
答案 1 :(得分:0)
我正在使用globalThis['datatoinput']
输入数据,然后在父页面上使用ionViewDidEnter
来读取globalThis['datatoinput']