Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- react portal
- Mac OS NVM
- 회고록
- 원티드프리온보딩
- toast err
- Redux
- git
- react
- 유령 의존성
- NVM
- 프로젝트
- jsEvent Loop
- input error
- next/link
- 식별자란
- 원티트 프리온보딩인턴십 1주차
- JS
- 인풋태그 엔터
- NextJs
- Client-Side Navigation
- 향해99
- Node
- CloudFront 무효화
- 광고지구
- Passed by Value
- Til
- JavaScript
- 원티드인턴십
- 알고리즘
- CPU와 GPU의 차이점
Archives
- Today
- Total
SUIN
[TIL] interceptors.response 전역 error toast 처리 본문
728x90
현재 진행하는 프로젝트에서 어드민 페이지의 전역 에러 처리 담당을 하게 되었다
각 api response 값이 다양하게 들어오기대문에 해당 res data의 vlaue 값을 별도로 뽑아주는 작업을 진행하여야 했다.
react-toastify 라이브러리를 통해 toast 팝업을 띄워 주었으며 코드는 다음과 같다.
import { toast } from "react-toastify";
axiosInstance.interceptors.response.use(
(response) => response,
(error) => {
const { response } = error;
if (response)
toast.error(`${Object.values(response.data)[0]}`, {
// toast 스타일
position: "top-center",
autoClose: 1000,
hideProgressBar: true,
closeOnClick: true,
pauseOnHover: true,
draggable: true,
progress: undefined,
theme: "colored",
});
return Promise.reject(error);
}
);
// err toast
import { ToastContainer } from "react-toastify";
import "react-toastify/dist/ReactToastify.css";
function App() {
return (
<QueryClientProvider client={queryClient}>
<div className="App">
<ToastContainer />
<GlobalModal />
<Loading />
<Routes>
<Route path="/" element={<DefaultLoginLayout />}>
...
</Route>
</Routes>
</QueryClientProvider>
response로 들어오는 data 값들만 뽑아야 했기 때문에 조건문을 활용해서 res data가 있을 경우에만 toast를 띄워줄 수 있으며
Object.values를 사용하여 텍스트 내용을 확인했다.
'TIL' 카테고리의 다른 글
[TIL] 두번째 팀 프로젝트를 마치며 .. 끄적여보는 일기 (1) | 2022.11.22 |
---|---|
[TIL] input undefined to a defined value error (0) | 2022.11.07 |
[TIL] input enter key event 엔터키 submit 이벤트 처리 (0) | 2022.10.31 |
[TIL] input tag [DOM]Password field is not contained in a form (0) | 2022.10.31 |
Git Action CloudFront Invalidate 무효화 CD 이슈해결 (1) | 2022.10.06 |