关于进入下一个页面关闭上一个页面Navigator.pop不起作用的问题

今天在做项目的时候遇到这个问题:从页面1进入页面2,在进入页面3,本来的目的是进入页面3的时候就关闭前两个页面,页面间通知我用的eventBus,通知到达了,然后我调用Navigator.pop,咦,页面3没有到达,本来即将跳转到页面3的页面2也被关闭了,顿时头大,为什么呢?

查阅官方文档,顿时豁然开朗,记住!路由管理说白了是由栈Stack来管理的,记住:

路由栈三要素:Stack,Navigator.push,Navigator.pop

Stack:栈,理解为一个通道

Navigator.push:将元素添加到栈的顶部

Navigator.pop:删除顶部元素


answer:记住一句话:Stack为栈,push将元素添加到栈的顶部,pop:删除顶部元素

原因:所以,我们进入页面三调用前两个页面的Navigator.pop时,其实是做了关闭页面的,只不过页面分布是这样的:底部->1->2->3->顶部,调用两次Navigator.pop就关闭了两次,只不过把2、3页面关闭了,还剩下底部页面1,故最后呈现在眼前的是页面1,

答案:既然我们进入页面就关闭行不通,那我们何不离开页面的时候才通知关闭呢,这样我们关闭的时候就是在当前显示的页面关闭的当前页面。




转载于:https://juejin.im/post/5d4be0e85188255d2a78b518

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值