⊗jsrtPmFmsDt 60 of 112 menu

Обработка на данни от формуляр при натискане на бутон в React

В предишния урок правехме така, че при въвеждане на символ в input полето в параграфа моментално да се появява резултат. Това, разбира се, изглежда добре, но има недостатък.

Представете си, че трябва да направим някаква "тежка", ресурсоемка операция. Не е много оптимално да я правим при всяко въвеждане на символ - по-добре е да изчакаме крайното въвеждане на данни и след това да изпълним необходимата операция веднъж и резултатът да се изведе в параграфа.

За това трябва да въведем бутон, при натискане на който ще се извършва нашата ресурсоемка операция. В този случай отново на всяко input поле ще съответства свое състояние, плюс още едно състояние ни трябва за записване на резултата от операцията и показването му на екрана.

Да разгледаме пример. Нека имаме две input полета и бутон. При натискане на бутона нека намерим сбора на числата, въведени в input полетата.

Нека реализираме:

function App() { const [value1, setValue1] = useState(0); const [value2, setValue2] = useState(0); const [result, setResult] = useState(0); function handleChange1(event) { setValue1(event.target.value); } function handleChange2(event) { setValue2(event.target.value); } function handleClick() { setResult(Number(value1) + Number(value2)); } return <div> <input value={value1} onChange={handleChange1} /> <input value={value2} onChange={handleChange2} /> <button onClick={handleClick}>btn</button> <p>result: {result}</p> </div>; }

Може да се използва съкратен вариант:

function App() { const [value1, setValue1] = useState(0); const [value2, setValue2] = useState(0); const [result, setResult] = useState(0); return <div> <input value={value1} onChange={event => setValue1(event.target.value)} /> <input value={value2} onChange={event => setValue2(event.target.value)} /> <button onClick={() => setResult(Number(value1) + Number(value2))}>btn</button> <p>result: {result}</p> </div>; }

Дадени са две input полета, два бутона и параграф. Нека в input полетата се въвеждат числа. При натискане на първия бутон намерете сбора на числата, а при натискане на втория бутон - произведението. Резултатът се извежда в параграфа.

Дадени са две input полета, бутон и параграф. Нека в input полетата се въвеждат дати във формат 2025-12-31. При натискане на бутона намерете разликата между датите в дни и резултатът се извежда в параграфа.

Модифицирайте предходната задача така, че по подразбиране в input полетата да стои текущата дата.

Дадено е input поле и параграф. В input полето се въвежда число. При загуба на фокус се извежда в параграфа сумата от цифрите на въведеното число.

Дадено е input поле и параграф. В input полето се въвежда число. При загуба на фокус се извежда в параграфа произведението на делителите на въведеното число.

Български
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
Ние използваме бисквитки за работата на сайта, анализ и персонализация. Обработката на данни се извършва в съответствие с Политика за поверителност.
приемам всички настройки отхвърляне