RouterModule.forRoot()调用了两次.延迟加载的模块应该使用RouterModule.forChild



我正在Lazy加载的模块中导入AppModule,该模块正在创建错误:错误:未捕获(在承诺中(:错误:RouterModule.forRoot((调用了两次。延迟加载的模块应该使用RouterModule.forChild((。

应用程序模块

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
import { AppRoutingModule } from './app-routing.module';
import { NgClockPickerLibModule } from 'ng-clock-picker-lib';
import { SharedDataService } from './services/shared-data.service';

@NgModule({
declarations: [
AppComponent,
...
],
imports: [
BrowserModule,  
NgClockPickerLibModule,
...
],
providers: [
SharedDataService,
...
],
exports: [
NgClockPickerLibModule
],
bootstrap: [AppComponent]
})
export class AppModule { }

应用程序路由模块

import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { RouterModule, Routes } from '@angular/router';
const routes: Routes = [
{ path: 'journalling', loadChildren: './Journalling/modules/journalling.module#JournallingModule' }
];
@NgModule({
imports: [
CommonModule,
RouterModule.forRoot(routes)
],
declarations: [
],
exports: [RouterModule]
})
export class AppRoutingModule { }

日记模块

import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { JournallingRoutingModule } from './journalling-routing.module';
import { AppModule } from 'src/app/app.module';

@NgModule({
imports: [
CommonModule,
JournallingRoutingModule,
AppModule
],
declarations: [ 
],
providers: [
]
})
export class JournallingModule { }

日记路由模块

import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
const routes: Routes = [  
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule]
})
export class JournallingRoutingModule { }

[Error RouterModule.forRoot((调用了两次。懒惰加载的模块应该使用forChild((。][1][1] :https://i.stack.imgur.com/yMDry.png

日记模块

import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { JournallingRoutingModule } from './journalling-routing.module';
import { AppModule } from 'src/app/app.module'; <--- remove this import
@NgModule({
imports: [
CommonModule,
JournallingRoutingModule,
AppModule // <--- remove this import
],
declarations: [ 
],
providers: [
]
})
export class JournallingModule { }

问题是您正在JournalingModule中导入AppModule,这导致RouterModule.forRoot((被调用两次。AppModule是您的根模块,不应在子模块中导入。

最新更新