Error: Minified React error #185; visit https://reactjs.org/docs/error-decoder.html?invariant=185 for the full message or use the non-minified dev environment for full errors and additional helpful warnings.
setState()가 componentDidUpdate()에 의해 호출되고 있다면 나오는 에러
각 상태 변경 후에 componentDidUpdate()가 호출되기 때문에 스택이 부족할 때까지 무한 루프가 발생한다 이것이 문제일 가능성이 높다
import { useEffect, useRef } from 'react';
export const useDidUpdateEffect = (fn: () => any, inputs: any[]) => {
const didMountRef = useRef(false);
useEffect(() => {
if (didMountRef.current) {
return fn();
}
didMountRef.current = true;
}, inputs)
}
위와같이 상태가 업데이트 되고 마운트 되는 custom useEffect를 만들어, 마운트 완료시 모달창을 띄우는 환경을 만들었었다
useDidUpdateEffect(() => {
if (어떤값1이 <= 0) {
// 모달창 1 생성
}
if (어떤값2가 > 0 && 어떤값3이 < 0) {
모달창 2 생성
}
}, [상태1, 상태2])
우와 같이 커스텀된 useDidUpdateEffect는 setState 즉, 상태를 변경하면 안되는데 useDidUpdateEffect 실행환경에서 setState를 변경하는 함수를 실행하게 해서 나오는 에러인거 같다
마운트 된다음에는 상태를 변경하는 부분에 주위 하자