client/mystackoverflow

[error] TypeError: middleware is not a function

growww 2022. 3. 26. 00:56

# 내용

 

redux의 히스토리를 chrome debugging tool로 보려고 하던 중 오류 발생함

 

redux-devtools-extension를 설치하고

redux의 createStore에 enhancer를 정의하여 넘겨 주었으나 오류 남

 

Server Error
TypeError: middleware is not a function

 

# 원인

 

아래 코드에서 applyMiddleware에 배열을 직접 넣어주어 나는 에러

const enhancer = process.env.NODE_ENV === 'production'
        ? compose(applyMiddleware([]))
        : ...

참고로 applyMiddleware 함수 정의가 아래와 같다.

export function applyMiddleware<Ext, S = any>(
  ...middlewares: Middleware<any, S, any>[]
): StoreEnhancer<{ dispatch: Ext }>

 

# 해결법

 

배열을 spread 문법으로 넘겨 주어야함

const middlewares = [];
    const enhancer = process.env.NODE_ENV === 'production'
        ? compose(applyMiddleware(...middlewares))
        : ...