Обновление с Angular 4 повторяет текущий маршрут - PullRequest
0 голосов
/ 07 октября 2018

Я использую 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' }
])

Есть идеи для новичка?

Ответы [ 2 ]

0 голосов
/ 07 октября 2018

Я не могу воспроизвести это в StackBlitz .Приведенный ниже gif показывает, как ваша конфигурация работает для меня, как ожидалось:

enter image description here

Пожалуйста, enableTracing и опубликуйте результаты, чтобы я мог помочь вам больше:

RouterModule.forRoot(
  appRoutes,
  { enableTracing: true } // <-- insert this here
)

Одним из решений является использование абсолютных перенаправлений (redirectTo: '/home').Однако, как говорит Виктор Савкин в своем блоге :

Локальные перенаправления заменяют один сегмент URL другим.Абсолютные перенаправления заменяют весь URL.

Но поскольку здесь используются локальные перенаправления, такие как redirectTo: 'home', следует заменить текущий путь 'home' на 'home' и не добавлять его.Эта ошибка возникает только в производстве или в разработке?

0 голосов
/ 07 октября 2018

Вам необходимо перейти от использования строки к использованию имени компонента

RouterModule.forRoot([
    { path: '', redirectTo: HomeComponent , pathMatch: 'full' },
    { path: 'home', component: HomeComponent },
    /* other paths mapping to components */
    { path: '**', redirectTo: 'home' }
])
...