Att arbeta med checkbox i React

Att arbeta med checkbox sker också enligt en liknande princip, bara istället för attributet value anger vi attributet checked. Om du skickar true till detta attribut - kommer checkboxen att vara markerad, och om false - kommer den inte att vara markerad:

jsxfunction App() {
  return <div>
    <input type="checkbox" checked={true}  /> markerad
    <input type="checkbox" checked={false} /> inte markerad
  </div>;
}

Vanligtvis skickas ett state som innehåller ett booleskt värde till attributet checked:

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

Precis som när man arbetar med input, om värdet på attributet checked är hårt satt - kan checkboxens tillstånd inte ändras. För korrekt funktion, låt oss vid förändring av checkboxen ändra dess state till motsatt värde:

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

Vi kan förenkla:

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

Låt oss visa checkboxens tillstånd i ett stycke, med hjälp av en ternär operator:

jsxfunction App() {
  const [checked, setChecked] = useState(true);
  
  return <div>
    <input type="checkbox" checked={checked} onChange={() => setChecked(!checked)} />
    <p>tillstånd: {checked ? 'markerad' : 'inte markerad'}</p>
  </div>;
}
Задание 1

Det finns en checkbox, en knapp och ett stycke. Vid klick på knappen, om checkboxen är markerad, skriv ut i styet en hälsningstext till användaren, och om den inte är markerad - en avskedstext.

Задание 2

Med hjälp av tre checkboxar, be användaren välja språk som hen kan: html, css och js. Skriv ut valresultatet för varje språk i separata stycken.