function EmailField() {
return <input type="email" value="[email protected]" />;
}Kullanıcı bu alanı tarayıcıda düzenlemeye çalışırsa ne olur?
- aHer tuş vuruşunda normal güncellenir, ama üst component bu yüzden asla yeniden render olmaz.
- bReact senkron bir render hatası fırlatır ve tüm component ağacı hemen unmount olur.
- cAlan salt-okunur davranır ve React, eksik onChange handler'ı için dev uyarısı loglar.✓
- dReact, ilk tuşa basıldığında alanı sessizce uncontrolled input'a çevirir.
Açıklama:
value prop'u input'u React tarafından controlled yapar ve yeni bir değeri geri besleyecek bir onChange yoktur, bu yüzden React ne yazılırsa yazılsın gösterilen metni "[email protected]" olarak sabitler — alan fiilen salt-okunurdur. React ayrıca şunu loglar: "You provided a value prop to a form field without an onChange handler. This will render a read-only field." Çözüm: onChange ekle, açıkça readOnly kullan, ya da uncontrolled bir alan için defaultValue'a geç.