⊗jsrtPmFmsAIB 70 of 112 menu

React-ում Ինփութների Զանգվածին Կապելը

Թող notes սթեյթում պահվի զանգված.

function App() { const [notes, setNotes] = useState([1, 2, 3]); return <div> </div>; }

Ենթադրենք, մենք ունենք նաև օժանդակ ֆունկցիա, որը գտնում է զանգվածի տարրերի գումարը.

function getSum(arr) { let sum = 0; for (const elem of arr) { sum += +elem; } return sum; } function App() { ... }

Եկեք գտնենք և արտածենք մեր սթեյթի զանգվածի տարրերի գումարը՝ օգտագործելով դրա համար մեր օժանդակ ֆունկցիան.

function App() { const [notes, setNotes] = useState([1, 2, 3]); return <div> {getSum(notes)} </div>; }

Եկեք այժմ ստեղծենք երեք ինփութ և value-ի մեջ յուրաքանչյուր ինփութի գրենք զանգվածի տարրերից մեկը.

function App() { const [notes, setNotes] = useState([1, 2, 3]); return <div> <input value={notes[0]} /> <input value={notes[1]} /> <input value={notes[2]} /> {getSum(notes)} </div>; }

Եկեք այժմ ավելացնենք onChange իրադարձությունը մեր ինփութներին: Ընդ որում, ստեղծենք մեկ ընդհանուր ֆունկցիա-խմբագրիչ այս իրադարձության համար.

function App() { const [notes, setNotes] = useState([1, 2, 3]); function changeHandler(index, event) { // Ընդհանուր ֆունկցիա-խմբագրիչ } return <div> <input value={notes[0]} onChange={event => changeHandler(0, event)} /> <input value={notes[1]} onChange={event => changeHandler(1, event)} /> <input value={notes[2]} onChange={event => changeHandler(2, event)} /> {getSum(notes)} </div>; }

Ինչպես տեսնում եք, changeHandler ֆունկցիան առաջին պարամետրով ընդունում է այն զանգվածի տարրի համարը, որը խմբագրում է տվյալ ինփութը.

Այս համարի միջոցով մենք կարող ենք փոխարինել զանգվածի տարրը ինփութի պարունակությամբ.

Եկեք անենք դա.

function changeHandler(index, event) { setNotes([...notes.slice(0, index), event.target.value, ...notes.slice(index + 1)]); }

Այժմ հնարավոր կլինի խմբագրել ցանկացած ինփութ, ընդ որում, ռեակտիվ կերպով կփոխվի զանգվածը և, համապատասխանաբար, կվերահաշվարկվի նրա տարրերի գումարը.

Եկեք հավաքենք մեր ամբողջ կոդը միասին.

function App() { const [notes, setNotes] = useState([1, 2, 3]); function changeHandler(index, event) { setNotes([...notes.slice(0, index), event.target.value, ...notes.slice(index + 1)]); } return <div> <input value={notes[0]} onChange={event => changeHandler(0, event)} /> <input value={notes[1]} onChange={event => changeHandler(1, event)} /> <input value={notes[2]} onChange={event => changeHandler(2, event)} /> {getSum(notes)} </div>; }

Կարելի է անել այնպես, որ ինփութները ձևավորվեն ցիկլում.

function App() { const [notes, setNotes] = useState([1, 2, 3]); function changeHandler(index, event) { setNotes([...notes.slice(0, index), event.target.value, ...notes.slice(index + 1)]); } const result = notes.map((note, index) => { return <input key={index} value={note} onChange={event => changeHandler(index, event)} />; }); return <div> {result} {getSum(notes)} </div>; }

Տրված է հետևյալ զանգվածը.

[1, 2, 3, 4, 5, 6, 7, 8, 9]

Արտածեք էկրանին այս զանգվածի տարրերի միջին թվաբանականը: Ցիկլում ստեղծեք ինփութներ տարրերը խմբագրելու համար.

Հայերեն
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Մենք օգտագործում ենք cookie-ներ կայքի աշխատանքի, վերլուծության և անհատականացման համար։ Տվյալների մշակումը կատարվում է համաձայն Գաղտնիության քաղաքականության։
ընդունել բոլորը կարգավորել մերժել