升级Angular12后报错:main.js:1 ERROR TypeError: Cannot read property '_rawValidators' of null
当前环境:
Angular CLI: 12.1.2
Node: 14.17.0
Package Manager: npm 7.19.1
OS: darwin x64
之前也遇到过这个错误,但是升级Angular12后出现了该错误。Form表单报错,但是没有更详细的信息。
main.js:1 ERROR TypeError: Cannot read property '_rawValidators' of null
at F (main.js:1)
at Q (main.js:1)
at G (main.js:1)
at t.addControl (main.js:1)
at t._setUpControl (main.js:1)
at t.ngOnChanges (main.js:1)
at t._t (main.js:1)
at xe (main.js:1)
at Se (main.js:1)
at we (main.js:1)
只有一个有效的关键词是_rawValidators
。开始以为是Validators校验规则写的有问题,但是把组件里的 Validators
都去掉了还是会报错。
后来才发现,原来是写错字段名称了。
比如在 component.ts 里写的表单字段是 title
:
// test-edit.component.ts
editForm = this.fb.group({
id: [''],
title: [''],
startTime: [''],
endTime: [''],
});
而在 component.html 的formControlName字段名写的是 title2222
这种,找不到的表单字段。
// test-edit.component.html
<form nz-form [formGroup]="editForm">
<nz-form-item>
<nz-form-label [nzXs]="24" nzFor="title">名称</nz-form-label>
<nz-form-control [nzXs]="6" nzErrorTip="名称必填">
<input nz-input formControlName="title2222" placeholder="名称" />
</nz-form-control>
</nz-form-item>
</form>
原来不是框架的bug,是自己的手误,特此记录一下。