替换选项卡路由中的组件 Angular Ionic

Replacing Component in Tabs Routing Angular Ionic

在通用离子选项卡模板中,我试图用组件替换选项卡 2。尽管导入了 PeopleComponent,我仍然收到此错误:

我的错误:

ERROR Error: Uncaught (in promise): Error: Component PeopleComponent is not part 
of any NgModule or the module has not been imported into your module.
Error: Component PeopleComponent is not part of any NgModule or the module has 
not been imported into your module.

People组件很简单,不会报错。我试过从一个或另一个中删除导入,但这不起作用。不知道该怎么办。

应用程序模块:

...
@NgModule({
  declarations: [
  ...
  PeopleComponent,
]
...

选项卡路由模块:

import { PeopleComponent } from './../path/people/people.component';
import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
import { TabsPage } from './tabs.page';

const routes: Routes = [
 {
    path: 'tabs',
    component: TabsPage,
    children: [
 {
    path: 'tab1',
    loadChildren: () => import('../tab1/tab1.module').then(m => m.Tab1PageModule)
  },
  {
    path: 'tab2',
    component: PeopleComponent
    // loadChildren: () => import('../tab2/tab2.module').then(m => m.Tab2PageModule)
  },
  {
    path: 'tab3',
    loadChildren: () => import('../tab3/tab3.module').then(m => m.Tab3PageModule)
  },
  {
    path: '',
    redirectTo: '/tabs/tab1',
    pathMatch: 'full'
  }
]
},
{
   path: '',
   redirectTo: '/tabs/tab1',
   pathMatch: 'full'
}
];

@NgModule({
  imports: [RouterModule.forChild(routes)],
  exports: [RouterModule]
})

导出 class TabsPageRoutingModule {}

标签模块:

import { PeopleComponent } from './../path/people/people.component';
import { IonicModule } from '@ionic/angular';
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';

import { TabsPageRoutingModule } from './tabs-routing.module';

import { TabsPage } from './tabs.page';

@NgModule({
  imports: [
    IonicModule,
    CommonModule,
    FormsModule,
    TabsPageRoutingModule,
  ],
  declarations: [TabsPage]
})
export class TabsPageModule {}

编辑:

与其执行下面提到的操作,不如删除 ionic tabs 入门模板创建的不需要的模块。

这是我所做的commit,它删除了不必要的模块并使应用程序更简单。

您可以对您的应用程序执行类似的操作并使其更简单。

旧答案

您必须在 TabsPageModuledeclarations 内添加 PeopleComponent 而不是 AppModule.

问题是 TabsPageModule 不知道 PeopleComponent,因为它已在 AppModule 中声明。除非您在 AppModule 中导出 PeopleComponent 并在 TabsPageModule 中导入 AppModule,否则 PeopleComponent 将无法使用。

与其像第一行提到的那样做所有这些,只需从 AppModule 声明中删除 PeopleComponent 并将其添加到 TabsPageModule.

中的声明中