Thunk
리덕스에서 많이 사용하고 있는 미들웨어중에 하나로 thunk
를 사용하면 우리가 dispatch
를 할때 객체가 아닌 함수를 dispatch
할 수 있게 해줍니다. 즉 dispatch(객체)
가 아니라 dispatch(함수)
를 할 수 있게 되는 것. 그래서 중간에 우리가 하고자 하는 작업을 함수를 통해 넣을 수 있고, 그것이 중간에 실행이 되는 것이다.
💡dispatch(함수) → 함수실행 → 함수안에서 dispatch(객체)
리덕스에서 dispatch
를 하면 action
이 리듀서로 전달이 되고, 리듀서는 새로운 state
를 반환한다. 근데 미들웨어를 사용하면 이 과정 사이에 우리가 하고 싶은 작업들을 넣어서 할 수 있다. 만약 counter
프로그램에서 더하기
버튼을 클릭했을 때 바로 +1를 더하지 않고 3초를 기다렸다가, +1이 되도록 구현하려면 미들웨어를 사용하지 않고서는 구현할 수 없다. 왜냐하면 dispatch
가 되자마자 바로 action
이 리듀서로 달려가서 새로운 state
를 반환해버리기 때문에 즉 여기서 3초를 기다리는 작업
이 작업을 미들웨어가 해주는 것. 보통 우리가 리덕스 미들웨어를 사용하는 이유는 서버와의 통신을 위해서 사용하는 것이 대부분이고, 또한 그 중에서도많이 사용되고 있는 리덕스 미들웨어는 Redux-thunk 라는 것이 있다.
createAsyncThunk
를 이용한다.**createAsyncThunk()
의 첫번째 자리에는 action value, 두번째에는 함수가 들어간다.axios interceptor
🚨error발생
axioserror request failed with status code 404 react
👍해결
.env 파일을 최상위로 안빼서 생긴문제...........하하