Delo s checkbox v React

Delo s checkbox prav tako poteka po podobnem principu, le da namesto atributa value določimo atribut checked. Če temu atributu posredujemo true - bo checkbox označen, če pa false - ne bo označen:

jsxfunction App() {
  return <div>
    <input type="checkbox" checked={true}  /> označen
    <input type="checkbox" checked={false} /> ni označen
  </div>;
}

Običajno se v atribut checked posreduje state, ki vsebuje logično vrednost:

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

Prav tako, kot pri delu z inputi, če togo določimo vrednost atributa checked - stanja checkboxa ne bo mogoče spremeniti. Za pravilno delovanje bomo ob spremembi checkboxa zamenjali njegov state z nasprotno vrednostjo:

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

Lahko poenostavimo:

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

Izpišimo stanje checkboxa v odstavek, z uporabo ternarnega operatorja:

jsxfunction App() {
  const [checked, setChecked] = useState(true);
  
  return <div>
    <input type="checkbox" checked={checked} onChange={() => setChecked(!checked)} />
    <p>stanje: {checked ? 'označen' : 'ni označen'}</p>
  </div>;
}
Задание 1

Podan je checkbox, gumb in odstavek. Ob kliku na gumb, če je checkbox označen, izpišite v odstavek besedilo pozdrava z uporabnikom, če pa ni označen - besedilo slovesa.

Задание 2

S tremi checkboxi prosite uporabnika, naj izbere jezike, ki jih pozna: html, css in js. Rezultat izbire za vsak jezik izpišite v ločene odstavke.