我正在一个项目中使用Angular 4。我没有使用Angular的丰富经验,应该修复一个错误。我认为这很简单,但是当我加载应用程序并获得/home
路由时,如果单击刷新按钮,则会在URL上附加另一个/home
。
我的RouterModule
配置如下:
RouterModule.forRoot([
{ path: '', redirectTo: 'home', pathMatch: 'full' },
{ path: 'home', component: HomeComponent },
/* other paths mapping to components */
{ path: '**', redirectTo: 'home' }
])
对新手有什么想法吗?
答案 0 :(得分:1)
我无法在StackBlitz中重现此内容。下面的gif显示了您的配置如何按我的预期进行工作:
请enableTracing
并发布结果,以便我为您提供更多帮助:
RouterModule.forRoot(
appRoutes,
{ enableTracing: true } // <-- insert this here
)
一种解决方案是使用绝对重定向(redirectTo: '/home'
)。但是,正如Viktor Savkin在他的blog post中所说:
本地重定向将单个URL段替换为另一个URL段。绝对重定向会替换整个URL。
但是,由于您在此处使用本地重定向,例如redirectTo: 'home'
,因此应将当前路径“ home”再次替换为“ home”,而不要附加它。此错误是否仅在生产或开发中发生?
答案 1 :(得分:0)
您需要从使用字符串更改为使用组件名称
TextView tv = (TextView) findViewById(R.id.sample_text);