if you using after an event occurred you can use
const selected = event.target.checked; //true or false
An example would be if you want to track selected items, here is an example using react react-hook-form react material ui, it would be better than using value
from rendered field
that give wrong values
...
const [selectedQuestions, setSelectedQuestions] = useState(0);
const handleSelectedQuestions = (checked) => {
if (checked) {
setSelectedQuestions((prev) => prev + 1);
} else {
setSelectedQuestions((prev) => prev - 1);
}
};
<Controller
key={item.id}
control={control}
name={`question-${item.id}`}
defaultValue={false}
render={({ field: { onChange } }) => (
<Grid key={item.id} item xs={12}>
<QuestionCard
item={item}
handleOpen={handleOpen}
isLoading={isLoading}
isError={isError}
onChange={(event) => {
handleSelectedQuestions(event.target.checked);
onChange(event);
}}
/>
</Grid>
)}
/>
...
export default function QuestionsCard({ item, handleOpen, onChange }) {
return (
...
<FormControlLabel
control={
<Checkbox
// checked={value}
onChange={onChange}
sx={{
'& svg': {
fontSize: '1.266rem',
},
}}
/>
}
/>
)
}