Hata Ansiklopedisi

Eksik Kontrol Değeri

Bu hata, bir FormGroup veya FormArray üzerinde setValue çağırdığınızda ancak ilettiğiniz değer kayıtlı kontrollerden biri için bir girdi içermediğinde oluşur.

setValue katıdır; her kontrol için bir değer bekler. Yalnızca bazı kontrolleri güncellemek istiyorsanız bunun yerine patchValue kullanın.

Hatayı ayıklama

Hata mesajında belirtilen kontrolü kontrol edin, ardından değer nesnenizin onu içerdiğinden emin olun.

Bu hatanın yaygın bir kaynağı, tüm anahtarlara sahip olmayan bir nesneyi yaymaktır:

const someValue = {first: 'Nancy'}; // 'last' eksik

form.setValue({...someValue}); // NG01002 fırlatır

Bu durum, someValue bir API yanıtından, kısmi bir durum güncellemesinden veya form yapısıyla tam olarak eşleşmeyen bir türden geliyorsa ortaya çıkabilir. Bu gibi durumlarda ya eksik anahtarları açıkça doldurun ya da patchValue kullanmaya geçin.

FormGroup

const form = new FormGroup({
  first: new FormControl(''),
  last: new FormControl(''),
});

// 'last' değerde yok — NG01002 fırlatır
form.setValue({first: 'Nancy'});

// her iki kontrol de kapsanıyor — sorunsuz çalışır
form.setValue({first: 'Nancy', last: 'Drew'});

FormArray

const formArray = new FormArray([new FormControl(''), new FormControl('')]);

// iki kontrol için yalnızca bir değer — NG01002 fırlatır
formArray.setValue(['Nancy']);

// kontrol başına bir değer — sorunsuz çalışır
formArray.setValue(['Nancy', 'Drew']);