안녕하세요. 제가 강의의 내용을 응용해보고 싶어서 redux-promise을 통해 적용해보고자 했는데
간단한 실험을 해보니
TypeError: dispatch(...).then is not a function
계속 위의 에러가 뜨면서 안되네요..
일단 아래와 같이 redux-promise을 적용해보았습니다.
뭐가 문제일까용...
import { createStore, compose, applyMiddleware } from 'redux';
import createSagaMiddleware from 'redux-saga';
import { createBrowserHistory } from 'history';
import { routerMiddleware } from 'connected-react-router';
import promiseMiddleware from 'redux-promise';
import createRootReducer from './redux/reducers/index';
import rootSaga from './redux/sagas'
export const history = createBrowserHistory();
const sagaMiddleware = createSagaMiddleware();
const initialState = {} // state 초기값
const middlewares = [sagaMiddleware, routerMiddleware(history), promiseMiddleware]
const devtools = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__;
const composeEnhancer =
process.env.NODE_ENV === "production" ? compose : devtools || compose;
//createStore안에 있는 3개를 합쳐 store을 만들어주는 것
const store = createStore(
createRootReducer(history),
initialState,
composeEnhancer(applyMiddleware(...middlewares))
);
//saga 미들웨어 작동하기 위한 것
sagaMiddleware.run(rootSaga);
////////////////////////
아래는 redux-promise가 되는지 실험해본 코드입니다.
AppNavbar의 로그인 전송버튼입니다.
const onSubmit = (e) => {
e.preventDefault();
const { email, password } = form;
const user = { email, password };
console.log(user);
dispatch({
type: LOGIN_REQUEST,
payload: user,
}).then(() => {
console.log('Test');
});
};