javascript - TypeError: Kan inte läsa egenskaper av null (läser '_rawValidators')
Jag försöker använda formgroup och formcontrol i Angular men vid ng serve, returnerar det ett fel i konsolen
Vet någon hur man fixar det?
TypeError: Kan inte läsa egenskaper av null (läser '_rawValidators')
min HTML:
<form [formGroup]="formOrcamento">
<div class="row">
<div class="col-md-4">
<mat-form-field class="example-full-width" appearance="outline">
<mat-label>Quantidade de passagens</mat-label>
<input matInput type="number" value="qtdPassagens" formControlName="qtdPassagens">
</mat-form-field>
</div>
<div class="col-md-4">
<mat-form-field appearance="outline">
<mat-label>Ida e Volta?</mat-label>
<mat-select [(ngModel)]="idaEVolta">
<mat-option value="false">Somente IDA</mat-option>
<mat-option value="true">IDA E VOLTA</mat-option>
</mat-select>
</mat-form-field>
</div>
</div>
<div class="row">
<div class="col-md-4">
<mat-form-field class="example-full-width" appearance="outline">
<mat-label>Valor no PIX</mat-label>
<input matInput type="number" value="valorVendaPIX" formControlName="valorVendaPIX">
</mat-form-field>
</div>
<div class="col-md-4">
<mat-form-field class="example-full-width" appearance="outline">
<mat-label>Milhas</mat-label>
<input matInput type="number" value="qtdMilhas" formControlName="qtdMilhas">
</mat-form-field>
</div>
</div>
</form>
min TS:
export class OrcamentoComponent implements OnInit {
formOrcamento: FormGroup;
constructor(private service: melteraService) {
this.formOrcamento = new FormGroup({
qtdPassagens: new FormControl(),
valorVendaPIX: new FormControl(),
qtdMilhas: new FormControl()
})
}
Svar #1
@MikeOne löste problemet, kombinationen av reaktiva kontroller och ngModel var problemet. Jag bytte från ngModel till formControlName och det fungerar
Svar #2
Tack till @AndrewKushnir
Detta är inte ett problem. Det är mycket enkelt. När du använder formControlName och inte lägger till det i dina formControls i component.ts, då kommer du att se problemet Cannot read properties of null (reading '_rawValidators'), vi kan ha ett tydligare meddelande här, till exempel, du deklarerar inte **** kontrollnamn.
Möjligheter att reproducera
- Formkontrollnamn matchar inte
- Lade till Formcontrolname som inte fanns i formcontrol
- om man använder typformulären kan det uppstå vissa konflikter mellan att skapa och initiera formulärkontrollen
länk : https://github.com/angular/angular/issues/48379