⊗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हिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Мо барои коркарди сомона, таҳлил ва шахсӣ кардан аз cookie истифода мебарем. Коркарди маълумот мувофиқи Сиёсати махфият сурат мегирад.
ҳамаро қабул кардан танзим кардан рад кардан