【发布时间】:2019-02-27 14:51:54
【问题描述】:
随着页码的增加,我开始遇到防止重复框架的困难,尤其是在使用侧抽屉时。如果我导航 A -> B -> A,我将得到 3 个实例,A 的 2 个和 B 的 1 个。这意味着我必须以某种方式确定导航是真正的导航还是“backToPreviousPage”。
理想情况下,我应该能够输入一条路线,它会智能地决定要做什么,例如:
router.navigate(['A'])
router.navigate(['B'])
router.navigate(['A'])
应该等于 A - 导航 -> B - backToPreviousPage -> A
现在,我的计划是提供一项服务来记录导航到的最后一条路线。这样我就可以只做 myService.navigate() ,它会根据当前路由是否与前一个匹配,自动决定是否应该进行真正的导航或使用 routerExtensions.backToPreviousPage()。
不过,在我这样做之前,我想确保没有什么明显的方式来处理这个问题。这种做法似乎是一种肮脏的方式。对我来说,Nativescript 路由器似乎应该默认处理这个问题,但我已经确认我的 A -> B -> A 场景会重新运行 ngOnInit,而且我还没有看到任何可能导致这种情况发生的选项。
【问题讨论】:
-
只要你拨打
navigate,它只会将当前页面添加到历史记录并导航到新路线。您可以多次导航到一个页面,它就像在浏览器环境中发生的一样。您可以使用NSLocationStrategy来确定您的历史记录并根据需要返回。 -
这是我最初的想法,但我已经研究 NSLocationStrategy 有一段时间了,我没有看到任何有助于检索任何历史的东西。你确定 NSLocationStrategy 是正确的吗?
标签: nativescript angular2-nativescript