⊗jsrtPmFmsChI 62 of 112 menu

Lavorare con le checkbox in React

Il lavoro con checkbox segue un principio simile, solo che invece dell'attributo value specifichiamo l'attributo checked. Se a questo attributo viene passato true - la checkbox sarà selezionata, mentre se false - non sarà selezionata:

function App() { return <div> <input type="checkbox" checked={true} /> selezionato <input type="checkbox" checked={false} /> non selezionato </div>; }

Di solito all'attributo checked viene passato uno state, che contiene un valore booleano:

function App() { const [checked, setChecked] = useState(true); return <div> <input type="checkbox" checked={checked} /> </div>; }

Proprio come quando si lavora con gli input, se si imposta rigidamente il valore dell'attributo checked - lo stato della checkbox non potrà essere cambiato. Per un funzionamento corretto, al cambiamento della checkbox, cambieremo il suo state con il valore opposto a quello corrente:

function App() { const [checked, setChecked] = useState(true); function handleChange() { setChecked(!checked); // invertiamo lo state } return <div> <input type="checkbox" checked={checked} onChange={handleChange} /> </div>; }

Possiamo semplificare:

function App() { const [checked, setChecked] = useState(true); return <div> <input type="checkbox" checked={checked} onChange={() => setChecked(!checked)} /> </div>; }

Visualizziamo lo stato della checkbox in un paragrafo, usando l'operatore ternario:

function App() { const [checked, setChecked] = useState(true); return <div> <input type="checkbox" checked={checked} onChange={() => setChecked(!checked)} /> <p>stato: {checked ? 'selezionato' : 'non selezionato'}</p> </div>; }

Data una checkbox, un pulsante e un paragrafo. Al click sul pulsante, se la checkbox è selezionata, visualizza nel paragrafo un testo di saluto per l'utente, altrimenti un testo di commiato.

Con tre checkbox, chiedi all'utente di selezionare le lingue che conosce: html, css e js. Il risultato della selezione per ogni lingua visualizzalo in paragrafi separati.

Italiano
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesia日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Utilizziamo i cookie per il funzionamento del sito, l'analisi e la personalizzazione. I dati vengono elaborati in conformità con la Politica sulla privacy.
accetta tutto personalizza rifiuta