codestates / HomeTownAlba

0 stars 0 forks source link

[21.11.01] 에러핸들링 (김지윤) - Company 마이페이지의 체크박스 데이터 #42

Open jacobways opened 2 years ago

jacobways commented 2 years ago

문제 상황 및 에러 로그

에러 코드

원인 및 해결방안

export default function CompanyMyPage () {

  // 체크박스에서 선택된 요일을 배열로 담기 위한 state
  const [day, setDay] = useState([])

  // 선택된 요일을 나타내는 state
  const [mon, setMon] = useState([])
  const [tue, setTue] = useState([])

  // 각 요일의 체크 여부
  const [monChecked, setMonChecked] = useState(false)
  const [tueChecked, setTueChecked] = useState(false)

  // 체크된 요일을 day state에 모아주는 핸들러
  const dayHandler = () => {
    setDay([...mon, ...tue, ...wed, ...thu, ...fri, ...sat, ...sun])
  }

  // 클릭을 통해 월요일 정보를 mon state 에 추가하거나 빼는 핸들러 
  const monHandler = () => {
    if(!monChecked) {  // setMonChecked를 통해 변경되기 전인 초기 state를 조건으로 사용
      setMon(["월"])
    } else {
      setMon([])
    }
    setMonChecked(!monChecked) 
  }

  // 클릭을 통해 화요일 정보를 tue state 에 추가하거나 빼는 핸들러 
  const tueHandler = () => {
    if(!tueChecked) {  // setTueChecked를 통해 변경되기 전인 초기 state를 조건으로 사용
      setTue(["화"])
    } else {
      setTue([])
    }
    setTueChecked(!tueChecked)
  }

  // 요일 state가 변경 이후에 dayHandler를 실행
  useEffect(() => {
    dayHandler()
  }, [mon, tue, wed, thu, fri, sat, sun])  // 변경된 요일 state를 실행 조건으로 설정

  return (

  )
}