Как настроить storybook story для модуля с помощью RouterLink - PullRequest
3 голосов
/ 15 января 2020

Невозможно настроить журнал для модуля, где routerLink используется из-за ошибки

ERROR NullInjectorError: StaticInjectorError(DynamicModule)[RouterLinkActive -> Router]

Чтобы воспроизвести шаги для воспроизведения поведения: demo-app Выполнить приложение, и вы можете проверить, что нет никакого возможного решения добавить RouterModule для работы с историей. Он не может быть настроен с RouterTestingModule, RouterModule, RouterModule.forRoot с путем iframe.html. Об отсутствующем провайдере всегда возникает одна и та же ошибка.

Ожидаемое поведение Для запуска приложения и истории с routerLink

Дополнительный контекст Последняя версия сборника рассказов 5.3.3 и angular ~8.2.14 Я работал с другой конфигурацией 5.2.8, и эта проблема не появляется.

Как настроить этот модуль, есть ли проблема в сборнике рассказов?

Проблема сборника рассказов

Ответы [ 2 ]

3 голосов
/ 24 января 2020

Я внес следующие изменения:

  1. Добавление RouterModule, включая массив маршрутов (используется для определения ваших маршрутов)
  2. Укажите необходимый APP_BASE_HREF.

navbar.module.ts

const routes: Routes = [];


@NgModule({
  declarations: [NavbarComponent],
  imports: [
    CommonModule,
    RouterModule.forRoot(routes)
  ],
  providers: [{provide: APP_BASE_HREF, useValue: '/'}],
  exports: [NavbarComponent]
})
export class NavbarModule {
}

После этого вам просто нужно добавить <router-outlet></router-outlet> в ваш NavbarComponent

1 голос
/ 12 февраля 2020

Сборник рассказов работает иначе, чем angular, поэтому мне не нужно вводить FeatureModule в историю, Component просто отлично. Когда только NavbarComponent вводится с RouterTestingModule

, история конфигурации выглядит следующим образом

storiesOf('Navbar', module)
  .addDecorator(
    moduleMetadata({
      imports: [BrowserAnimationsModule, RouterTestingModule],
      declarations: [NavbarComponent],
    }),
  )

И вам не нужна конфигурация маршрутов xD

...