在Nativescript / Angular中处理向后路由的推荐方法?

时间:2019-02-26 21:36:56

标签: nativescript angular2-nativescript

随着页码的增加,我开始遇到防止重复框架的困难,尤其是在使用侧抽屉时。如果我导航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->一个场景重新运行了ngOnInit,并且我还没有看到任何可能实现此目标的选项。

1 个答案:

答案 0 :(得分:0)

页面路由器出口应跟踪堆栈/历史记录中的内容。根据网址细分,您可以决定要返回还是导航到新组件。

constructor(pageRouterOutlet: PageRouterOutlet) {
    // `outlet` is private
    (<any>pageRouterOutlet).outlet.states.forEach((state) => {
        console.log(state.segmentGroup);
    });
}