[React] Cannot update a component (`Batcher`) while rendering a different component

hanseungjune·2023년 4월 15일
0

비전공자의 IT준비

목록 보기
61/68
post-thumbnail

📌 오류 상황

😑 해결 전

  const [value, setValue] = React.useState<Dayjs | null>(dayjs('2022-04-17'))

  const year = value?.year()
  const month = Number(value?.month()) + 1
  const day = value?.date()

  // 년월일 상태관리
  const setDatePick = useSetRecoilState(datePick)
  setDatePick({
    year,
    month,
    day
  })

😁 해결 후

  const [value, setValue] = React.useState<Dayjs | null>(dayjs(Date.now()))

  const year = value?.year()
  const month = Number(value?.month()) + 1
  const day = value?.date()

  // 년월일 상태관리
  const setDatePick = useSetRecoilState(datePick)
  useEnhancedEffect(() => {
    setDatePick({
      year,
      month,
      day
    })
  }, [setDatePick, day, year, month])

useEnhancedEffect 는 MUI 라이브러리 사용 시, 권장되는 Hook이며, useEffect를 대신한다.

그리고 에러를 해결하기 위해서는 useEnhancedEffect 또는 useEffect를 사용하여, setState를 래핑해야 위와 같은 에러를 발생시키지 아니한다.

profile
필요하다면 공부하는 개발자, 한승준

0개의 댓글