目录

Navigation如何携带参数返回首页

问题现象

使用Navigation实现页面导航功能,从首页跳转到其他非首页之后,再次返回首页,如何将数据传递回首页?

背景知识

返回首页一般存在两种方式:

  1. 通过NavPathStack的pop方法一步步回退至首页,最简单的场景是:首页->PageOne->首页。
  2. 首页跳转至其他页面之后,经过其他页面多次跳转,再立马返回首页。一个简单的场景是:首页->PageOne->PageTwo->首页。

解决方案

常见FAQ

Q:Navigation如何直接返回首页?

A:首页不存在页面栈中,可看作在栈中的位置为-1,使用this.pathStack.clear()清空栈即可返回首页。

总结

场景

方案

说明

从其他页面一步步回退至首页

使用onPop回调链式接收

适合页面逐级返回的场景。

多次跳转之后立马返回

自定义首页

1. 无法适配导航栏分栏显示模式。

2. 需要对自定义首页进行路由管理。

3. 导航栏等需要自定义实现。

多次跳转之后立马返回

事件订阅

1. 页面销毁时未正确销毁监听,可能会导致内存泄露。

2. 需要新增一个订阅事件,造成订阅事件过多。