Componente radio e checkbox

I radio button permettono all'utente di selezionare una (e soltanto una) opzione mentre le caselle di checkbox permettono all'utente di poter selezionare (tramite flag) più di una casella

Codice di esempio per inserire dei radio button

						
import React from 'react'

const App = () => {

	//FUNZIONE AGGIORNA (richiamata al cambiamento della selezione dei radio button)
	const aggiorna = (event) => {
		console.log("FUNZIONE AGGIORNA (onChange radio button)")
		console.log("Selezionato: " + event.target.value)
	}

	//RETURN --> Stampa a video
	return (
		<div>
			{/* RADIO BUTTON */}
			<h1>Radio button</h1>
			<input type="radio" name="sesso" value="Maschio" onChange={aggiorna} />Maschio
			<input type="radio" name="sesso" value="Femmina" onChange={aggiorna} />Femmina
		</div>
	)
}

export default App
						
					

Codice di esempio per inserire delle caselle di checkbox

						
import React, { useState } from 'react'

const App = () => {

	//DICHIARAZONE DELLO useState PER MEMORIZZARE GLI SPORT SELEZIONATI
	const [sport, setSport] = useState([])

	//FUNZIONE AGGIORNA (richiamata al cambiamento della selezione delle chechbox)
	const aggiorna = (event) => {
		console.log("FUNZIONE AGGIORNA (onChange checkbox)")
		console.log("Selezionato: " + event.target.value)
		/*
		***** SPORT INCLUDES *****
		Controllo che lo sport selezionato non sia già presente all'interno dell'array
		"!" serve a negare la condizione (sport.includes(event.target.value) controlla se è presente la condzione
		Con "!" l'if verifica che non sia presente (NOT) --> se è così --> aggiunge lo sport all'array

		***** FILTER *****
		È una funzione che può essere usata solo con gli array
		Ho creato una funzione anonima (si chiama così perchè non ha un nome), questa funzione deve SEMPRE avere un return di tipo boolean True / False
		Questa funzione ritorna un'array (salvato nello useState sport tramite setSport)
		*/
		if (!sport.includes(event.target.value)) {
			setSport([...sport, event.target.value])
		} else {
			setSport(sport.filter((element) => element != event.target.value))
		}
	}

	//RETURN --> Stampa a video
	return (
		<div>
			{/* CHECKBOX */}
			<h1>Checkbox</h1>
			<input type="checkbox" name="sport" value="Calcio" onChange={aggiorna} />Calcio
			<input type="checkbox" name="sport" value="Basket" onChange={aggiorna} />Basket
			<input type="checkbox" name="sport" value="Tennis" onChange={aggiorna} />Tennis
			<br/>

			{/* Stampo gli sport selezionati (salvati nello useState) */}
			{sport}
		</div>
	)
}

export default App