참고문서
1) find.js
const handleSingleCheck = (checked, idx) => {
if (checked) {
setSelection((prev) => [...prev, idx])
} else {
setSelection(selection.filter((id) => id !== idx))
}
}
const handleAllCheck = (checked) => {
if (checked) {
const idxArray = []
children.forEach((item) => idxArray.push(item.id))
setSelection(idxArray)
} else {
setSelection([])
}
}
const list = children.map((child) => (
<CheckCard
key={child.id}
child={child}
onClick={handleSingleCheck}
checked={selection.includes(child.id) ? true : false}
/>
))
2) CheckBox.js
useEffect(() => {
if (!allChecked) {
setActvie(false)
} else {
setActvie(true)
}
}, [allChecked])
const handleClick = () => {
setActvie(!active)
onClick(!active)
}
3) CheckCard.js
const handleClick = () => {
setState(!state)
onClick(!state, child.id)
}
useEffect(() => {
if (checked) {
setState(true)
} else {
setState(false)
}
}, [checked])