【问题标题】:Component defined in child route does not run NgOnInit lifecycle function子路由中定义的组件不运行 NgOnInit 生命周期函数
【发布时间】:2021-01-02 16:27:43
【问题描述】:

我的应用程序设置为让我的主路由加载模板组件,它们本身有一个路由器出口,以便加载我想要加载到该模板中的特定组件:

const routes: Routes = [
  {
    path: 'signup',
    component: Template1Component,
    children: [{ path: '', component: SignupComponent  }]
  },
  {
    path: 'login',
    component: Template1Component,
    children: [{ path: '', component: LoginComponent }]
  },
  {
    path: 'logout',
    component: Template2Component,
    children: [{ path: '', component: WelcomeComponent }]
  }
];

我遇到的当前问题是通过 children 属性加载的组件加载正常(UI 已实例化)。但是,NgOnInit 函数没有运行,随后我的注册表单无法正常工作。

【问题讨论】:

  • 请显示你的组件,也许你忘记实现s OnInit
  • 实现接口是一种很好的做法,但不是强制性的。确保方法名称是 ngOnInit() 而不是 NgOnInit,因为您输入了您的问题。
  • 是的,但如果你正确实现它,它会添加关于方法名称的提示
  • ngOnInit(): void { console.log('初始化注册组件'); }

标签: angular


【解决方案1】:

签入你的组件 导出类 LoginComponent 实现 OnInit

作为

界面帮助我们避免拼写和语法错误。

你可以试试

   @ngModule({
       imports: [RouterModule.forRoot(routes, {onSameUrlNavigation:    ‘reload’})],
       exports: [RouterModule],
   })

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-14
    • 2018-03-11
    • 2015-12-08
    • 2011-01-22
    • 1970-01-01
    • 2017-03-07
    • 2018-01-07
    • 2019-02-25
    相关资源
    最近更新 更多