Angular引入ReactiveFormsModule后[formGroup]仍不识别如何解决?
问题根源
Angular的模块作用域是隔离的,你导入的ReactiveFormsModule、FormsModule只能作用于对应模块declarations数组中声明的组件,你的配置存在两处核心问题:
InicioComponent没有被声明到任何模块的declarations数组中,Angular无法将表单指令关联到该组件- 你在
MyRouterModule中导入的表单模块仅对当前模块声明的组件生效,未声明组件的前提下导入表单模块不会生效
解决方案
将InicioComponent添加到MyRouterModule的declarations数组中即可,修改后的MyRouterModule代码如下:
import { CommonModule } from '@angular/common'; import { NgModule } from '@angular/core'; import { FormsModule, ReactiveFormsModule } from '@angular/forms'; import { RouterModule, Routes } from '@angular/router'; import { InicioComponent } from './inicio/inicio.component'; const routes: Routes = [ { path: '', component: InicioComponent } ]; @NgModule({ declarations: [InicioComponent], // 新增该行声明路由对应的组件 imports: [ CommonModule, FormsModule, ReactiveFormsModule, RouterModule.forRoot(routes) ], exports: [ RouterModule ] }) export class MyRouterModule { }
如果修改后仍有报错,重启开发服务ng serve清除缓存即可。
内容的提问来源于stack exchange,提问作者MaoMonroy
相关产品推荐
相关产品推荐

