9

routerLink由于错误,无法为使用的模块配置故事

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

重现行为的重现步骤: demo-app 运行应用程序,您可以测试没有可能的解决方案来添加 RouterModule 以使用故事。不能用RouterTestingModule, RouterModule,RouterModule.forRootiframe.html路径配置。缺少提供程序总是存在相同的错误。

预期行为 使用 routerLink 运行应用程序和故事

附加上下文最新版本的故事书5.3.3和角度~8.2.14 我正在使用不同的配置 5.2.8,并且没有出现此问题。

如何配置这个模块,故事书有问题吗?

故事书问题

4

2 回答 2

9

Storybook 的工作方式与 Angular 不同,所以我不需要注入FeatureModule故事,Component就可以了。仅当NavbarComponent注入RouterTestingModule

故事配置看起来像这样

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

而且您不需要路由配置xD

于 2020-02-12T08:58:16.717 回答
6

我做了以下更改:

  1. 添加RouterModule包括路由数组(用于定义您的路由)
  2. 提供所需的 APP_BASE_HREF。

导航栏.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

于 2020-01-24T08:11:34.847 回答