import React, { useState, useEffect } from "react";
export default function App(){
const [checkedInputs, setCheckedInputs] = useState([]);
const changeHandler = (checked, id) => {
if (checked) {
setCheckedInputs([...checkedInputs, id]);
} else {
// 체크 해제
setCheckedInputs(checkedInputs.filter((el) => el !== id));
}
};
return (
<div>
<input
id={???}
type="checkbox"
onChange={()=>{
changeHandler(e.currentTarget.checked, id값)
}}
checked={checkedInputs.includes(id값) ? true : false}
/>
</div>
)
}
1) onChange ====>> checked 상태값과 id(또는 value 등) 값을 전달한다. 2) 체크된 id는 []배열 형태의 state에 추가한다. 3) 체크해제된 id 는 []배열 형태의 state에서 삭제한다. 4) input의 checked 값은 []배열 형태의 state에 해당 input의 id값이 포함되는지 검사하여 결정한다.