【发布时间】:2019-05-20 10:02:37
【问题描述】:
这是我在 nativescript-angular 项目中的路由:
const routes: Routes = [
{
path: "",
redirectTo: "/tabs/default",
pathMatch: "full"
},
{
path: "tabs",
loadChildren: "~/app/modules/tabs/tabs.module#TabsModule"
},
{
path: "login",
loadChildren: "~/app/modules/login/login.module#LoginModule"
},
{
path: "register",
loadChildren: "~/app/modules/register/register.module#RegisterModule"
}
];
@NgModule({
imports: [NativeScriptRouterModule.forRoot(routes, {
preloadingStrategy: PreloadAllModules
})],
exports: [NativeScriptRouterModule]
})
导致错误的场景:首先应用程序从选项卡路由开始,然后我进入登录页面,然后我去注册,然后再次进入选项卡页面(并清除历史记录)。之后,如果我再次进入登录页面并返回上一个(标签页),则会发生错误。
错误:
JS: Error: Cannot reattach ActivatedRouteSnapshot with a different number of children
JS: at setFutureSnapshotsOfActivatedRoutes (file:///data/data/org.nativescript.tns57/files/app/tns_modules/@angular/router/bundles/router.umd.js:1950:19) [angular]
JS: at setFutureSnapshotsOfActivatedRoutes (file:///data/data/org.nativescript.tns57/files/app/tns_modules/@angular/router/bundles/router.umd.js:1954:13) [angular]
JS: at createNode (file:///data/data/org.nativescript.tns57/files/app/tns_modules/@angular/router/bundles/router.umd.js:1935:17) [angular]
JS: at file:///data/data/org.nativescript.tns57/files/app/tns_modules/@angular/router/bundles/router.umd.js:1975:20 [angular]
JS: at Array.map (<anonymous>) [angular]
JS: at createOrReuseChildren (file:///data/data/org.nativescript.tns57/files/app/tns_modules/@angular/router/bundles/router.umd.js:1958:30) [angular]
JS: at createNode (file:///data/data/org...
有什么想法吗?
【问题讨论】:
-
你试过没有 cleanHistory 吗?
-
@Narendra 我仍然得到了
clearHistory的错误。 -
@Narendra 你可以使用这个 repo 进行测试:github.com/NativeScript/login-tab-navigation-ng/issues/7
-
你是用
RouterModule.forRoot来初始化这个还是this.router.resetConfig?你能添加你使用这个数组的模块部分吗? -
@Thatkookooguy 我使用
forRoot进行初始化。更新了内容。请再看一遍。谢谢。
标签: angular angular-router nativescript-angular