⊗jsrtPmCoTOS 96 of 112 menu

React'те бир чындыктын булагы

React-колдонмосунун ичиндеги өзгөрүлмө маалыматтардын баары үчүн бир чындыктын булагы болушу керек. Бул сөздөр менен төмөнкү нерсени билдирет: эгерде сизде эки стейт бар болсо жана бир стейт экинчиси аркылуу эсептелип чыга алынса - анда бир стейт артыкчылыкка ээ жана аны алып салуу керек.

Келгиле, муну мисал менен талкуулайлы. Сизде, мисалы, эки инпут бар дейли: биринчисине Фаренгейт градусу менен температура киргизилет, ал эми экинчисине - Цельсий градусу менен. Биз муну каалайбыз, экөө тең инпут синхрондаштырылсын: температураны бир инпутка киргизгенде, ал туура жол менен экинчисинде өзгөрүшү керек.

Туура эмес жол - бул эки стейт киргизүү: бири Фаренгейт боюнча температура үчүн, экинчиси - Цельсий боюнча. Эмне үчүн туура эмес: анткени бир температура экинчисинен эсептелип чыгат, демек, маалыматтарды сактоо жер катарында бир стейт болушу керек.

Сүрөттөлгөн маселенин ишке ашырылышын жазыңыз.

Бир программачы массивдин элементтеринин суммасын чыгаруучу кодду жазган:

function getSum(arr) { let res = 0; for (let elem of arr) { res += +elem; } return res; } function Calculator() { const [value, setValue] = useState(''); const [nums, setNums] = useState([1, 2, 3]); const [sum, setSum] = useState(6); // массив nums элементтеринин суммасы function handleChange(event) { setValue(event.target.value); } function handleBlur(event) { setNums([...nums, event.target.value]); // массивга элемент кошуу setSum(getSum([...nums, event.target.value])); // сумманы кайрадан эсептөө } return <div> <p>{sum}</p> <input value={value} onChange={handleChange} onBlur={handleBlur} /> </div>; }

Бул код менен эмне туура эмес? Аны оңдоп жазыңыз.

Бир программачы массив элементтерин оңдоо үчүн код жазган:

function App() { const [notes, setNotes] = useState([1, 2, 3, 4, 5]); const [editNum, setEditNum] = useState(null); const [value, setValue] = useState(''); const result = notes.map((note, index) => { return <p key={index} onClick={() => startEdit(index)}> {note} </p>; }); function startEdit(index) { setEditNum(index); setValue(notes[index]); // оңдолуп жаткан элементтин текстин бөлүк стейтке жазуу } function changeItem(event) { setValue(event.target.value); setNotes([...notes.slice(0, editNum), event.target.value,...notes.slice(editNum + 1)]); } return <div> {result} <input value={value} onChange={changeItem} /> </div>; }

Бул код менен эмне туура эмес? Аны оңдоп жазыңыз.

Кыргызча
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 файлдарын колдонобуз. Маалыматтарды иштетүү Маалыматты коргоо саясаты боюнча жүргүзүлөт.
баарын кабыл алуу ыңгайлаштыруу четке кагуу