작성
·
231
0
안녕하세요! 툴킷으로 리액트-리덕스 프로젝트를 만들고 있습니다. 툴킷으로 비동기작업을 할 때, 예를들어 API를 호출하여 정보를 받아올 때 사후처리나 에러처리를 하려면 slice의 extraReducer에서 해야하는지요??
컴포넌트에서 createAsynThunk 액션을 호출하기 때문에비즈니스로직이 컴포넌트에는 들어갈 수 없을 것 같고, createAsyncThunk에는 try-catch를 쓸수 없으니, 여기에도 로직이 들어갈 수 없을 것 같고.. extraReducer에서만 사후처리,에러처리 등의 로직이 들어갈 수 밖에 없는지요??
답변 1
0
https://redux-toolkit.js.org/api/createAsyncThunk
여기서 unwrap 검색해서 보시면 dispatch 후에 then과 catch 붙일 수 있습니다. 여기서 처리하세요. 물론 reducer에서 state 변경할 수 있는 것은 최대한 변경하시고, 사이드 이펙트만 unwrap 해서 하시면 됩니다.