⊗jsrtPmFmsOIB 71 of 112 menu

Mengikat Input kepada Objek dalam React

Katakan dalam state disimpan satu objek:

const initObj = { prop1: 'value1', prop2: 'value2', prop3: 'value3', } function App() { const [obj, setObj] = useState(initObj); return <div> {obj.prop1}-{obj.prop2}-{obj.prop3} </div>; }

Mari kita keluarkan setiap sifat objek kita dalam input yang berasingan:

function App() { const [obj, setObj] = useState(initObj); return <div> <input value={obj.prop1} /> <input value={obj.prop2} /> <input value={obj.prop3} /> <br /> {obj.prop1}-{obj.prop2}-{obj.prop3} </div>; }

Sekarang mari kita ikat setiap input dengan peristiwa onChange. Sebagai pengendali, tetapkan satu fungsi umum:

function App() { const [obj, setObj] = useState(initObj); return <div> <input value={obj.prop1} onChange={event => handleChange('prop1', event)} /> <input value={obj.prop2} onChange={event => handleChange('prop2', event)} /> <input value={obj.prop3} onChange={event => handleChange('prop3', event)} /> <br /> {obj.prop1}-{obj.prop2}-{obj.prop3} </div>; }

Seperti yang anda lihat, fungsi handleChange menerima nama sifat objek yang sepadan sebagai parameter pertama.

Mari kita tulis pelaksanaan fungsi kita:

function handleChange(prop, event) { const copy = Object.assign({}, obj); copy[prop] = event.target.value; setObj(copy); }

Pelaksanaan ini berfungsi, tetapi ia boleh dipermudahkan jika menggunakan nama sifat objek yang boleh dikira:

function handleChange(prop, event) { setObj({...obj, ...{[prop]: event.target.value}}); }

Mari kita kumpulkan semua kod bersama:

function App() { const [obj, setObj] = useState(initObj); function handleChange(prop, event) { setObj({...obj, ...{[prop]: event.target.value}}); } return <div> <input value={obj.prop1} onChange={event => handleChange('prop1', event)} /> <input value={obj.prop2} onChange={event => handleChange('prop2', event)} /> <input value={obj.prop3} onChange={event => handleChange('prop3', event)} /> <br /> {obj.prop1}-{obj.prop2}-{obj.prop3} </div>; }

Katakan dalam state disimpan satu objek dengan tarikh:

const initDate = { year: 2025, month: 12, day: 31, }

Keluarkan dalam perenggan tahun, bulan dan hari dari tarikh yang disimpan dalam state, serta hari dalam minggu yang sepadan dengannya.

Ubah suai tugas sebelumnya dengan menambah tiga input untuk mengedit tarikh.

Melayu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Kami menggunakan kuki untuk operasi laman web, analisis dan personalisasi. Pemprosesan data dijalankan mengikut Polisi Kerahsiaan.
terima semua tataletak tolak