يمكنك حل المشكلة بتغيير الوظيفة handleCheck إلى الشكل التالي :
const handleCheck = (event) => {
if (checked.includes(event.target.value)) { // checked في حال كان العنصر المنقو موجود سابقاً في الـ
let updated = checked.filter(item => item !== event.target.value) // بحيث لا يبقى العنصر المنقور checked فلتر الـ
setChecked(updated) // checked حديث الـ
} else {
let updated = [...checked, event.target.value]
setChecked(updated)
}
}
حيث في حال كانت الـ state المسمات checked تحتوي على الـ event.target.value (أي إذا كان الـ checkbox منقور سابقاً) تقوم بعمل فلترة لهذه الـ checked بحيث يتم إبقاء العناصر التي قيمتها لا تساوي event.target.value (أي حذف العنصر الذي قيمته event.target.value).