ReactJS: "Satu Komponen Menukar Input Tidak Terkawal Teks Jenis untuk Dikawal" Ralat
ReactJS mewajibkan konsistensi dalam pengendalian tidak terkawal dan elemen input terkawal. Seperti yang ditunjukkan oleh amaran, medan input tidak boleh berayun antara kedua-dua keadaan ini semasa hayat komponen.
Memahami Masalah
Dalam kod yang disediakan, masalah berpunca daripada keadaan permulaan, di mana medan pada mulanya ditakrifkan sebagai objek kosong, iaitu medan: {}. Persediaan ini menetapkan elemen input sebagai input tidak terkawal semasa pemaparan awal.
Walau bagaimanapun, apabila nilai dimasukkan ke dalam medan input, objek medan keadaan dikemas kini, menghasilkan pertukaran kepada gelagat input terkawal. Peralihan daripada tidak terkawal kepada terkawal ini tidak dibenarkan, membawa kepada amaran.
Penyelesaian Kemungkinan
Penyelesaian 1: Mulakan Medan dengan Rentetan Kosong
Betulkan permulaan keadaan untuk memasukkan rentetan kosong untuk medan nama, memastikan bahawa input dikawal dari mula:
<code class="javascript">this.state = { fields: { name: '', }, errors: {}, };</code>
Penyelesaian 2: Laksanakan Penilaian Litar Pintas
Daripada bergantung semata-mata pada keadaan, gunakan penilaian litar pintas untuk menetapkan nilai input sebagai rentetan kosong jika nilai keadaan tidak ditentukan:
<code class="javascript">value={this.state.fields.name || ''}</code>
Ini memastikan bahawa medan input kekal dikawal walaupun nilai keadaan awal tidak ditentukan.
Dengan melaksanakan cadangan ini, amaran akan diselesaikan, memastikan input dikendalikan secara konsisten dan selaras dengan jangkaan ReactJS.
Atas ialah kandungan terperinci **Bagaimana untuk Membetulkan Ralat \'Satu Komponen Menukar Input Teks Jenis Tidak Terkawal untuk Dikawal\' dalam ReactJS?**. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!