Redux增强器和applyMiddleware

Redux增强器和applyMiddleware,redux,Redux,我正在查看redux代码库 要创建存储,我们调用redux公开的createStore函数 createStore(ourReducer,{}, applyMiddleware(someMiddleware)); export default function createStore(reducer, preloadedState, enhancer) { if (typeof preloadedState === 'function' && typeof enhance

我正在查看redux代码库

要创建存储,我们调用redux公开的createStore函数

createStore(ourReducer,{}, applyMiddleware(someMiddleware));


export default function createStore(reducer, preloadedState, enhancer) {
  if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {
    enhancer = preloadedState
    preloadedState = undefined
  }

  if (typeof enhancer !== 'undefined') {
    if (typeof enhancer !== 'function') {
      throw new Error('Expected the enhancer to be a function.')
    }

    return enhancer(createStore)(reducer, preloadedState)
  } ...
在上面的createStore函数中,增强器在这一部分被调用,它也是我在第一行传递的applyMiddleware函数

enhancer(createStore)(reducer, preloadedState)
但是当我检查applyMiddleware函数时,有3个参数 (减速器、预加载状态、增强器)

基本上都是未定义的,对吗?我只是好奇它为什么在那里,或者我是否遗漏了什么

enhancer(createStore)(reducer, preloadedState)
是的,这个经常出现(令人惊讶)。这是使用
createStore
的“旧式”方式的延续。有关该论点存在的原因的讨论和历史,请参阅

enhancer(createStore)(reducer, preloadedState)