鍍金池/ 問答/HTML5  HTML/ redux中applyMiddleware寫法到底是哪種?

redux中applyMiddleware寫法到底是哪種?

在學(xué)習(xí)redux中間件的時候,發(fā)現(xiàn)了applyMiddleware寫法竟然有兩種,但是官方文檔只有這一種
const store = createStore(reducer, preloadedState, applyMiddleware(...middleware))

但是自己在其他地方由看到這種寫法
const store = applyMiddleware(...middlewares)(createStore)(reducer, initialState)
想問下各位這是什么寫法,是以前的舊寫法還是什么寫法?

回答
編輯回答
風(fēng)清揚(yáng)

這兩種寫法是等價的,createStore的源碼

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)
  }
  ...
}

最關(guān)鍵的就是下面這一行

enhancer(createStore)(reducer, preloadedState)
2018年8月31日 10:09