[React] 여러 개의 checkbox 관리하는 법

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값이 포함되는지 검사하여 결정한다.

links

social