목록개발/React (3)
EPguy
Next js에서 npm run build를 하면 아래와 같은 오류가 발생했다. Type error: Cannot find name '__DEV__'. redux toolkit을 사용중이였는데 redux toolkit 라이브러리는 immer 라이브러리를 자동으로 설치 하는 것 같다. 여기서 문제가 발생하는데 immer라이브러리를 까보니 환경이 production인지 구분할 때 process.env.NODE_ENV가 아닌 DEV 변수를 사용하는 것이다. 그래서 npm install immer를 통해 immer 라이브러리를 직접 설치해주니 DEV가 process.env.NODE_ENV 가 바뀌면서 에러가 해결됐다. 해결방법 npm install immer
아래 코드처럼 unwrap을 try catch 문으로 묶으면 API 호출이 성공인 경우 try 문을 타고 에러인 경우 catch 문을 탄다. const handleChangeSummoner = async (summonerName: string) => { try { await changeSummoner(summonerName).unwrap(); //이곳엔 성공시 처리 할 코드 작성 } catch (error) { //이곳엔 에러시 처리할 코드 작성 } }
axios interceptor 내부에서 Zustand를 사용하여 상태를 변경하고 싶거나 상태를 가져오고 싶은 경우 아래와 같이 store 객체에 있는 getState() 혹은 setState() 를 사용하면 된다. instance.interceptors.response.use((response) => { return response; }, (error) => { const errAlertOpen = useAlertStore.getState().open; // 여기 errAlertOpen(AlertTypeEnum.ERROR, 'Error', error.message); return Promise.reject(error); })