2017-03-17 118 views
0

所以,我检查了终极版的代码库,终极版增强和applyMiddleware

要创建一个店,我们称之为由终极版曝光的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个参数 (减速机,preloadedState,增强剂)...

export default function applyMiddleware(...middlewares) { 
    return (createStore) => (reducer, preloadedState, enhancer) => { 

...

它基本上总是不确定的吧?我只是好奇为什么它在那里,或者我错过了什么。

enhancer(createStore)(reducer, preloadedState) 

回答

1

是的,这个出现(令人惊讶)频繁。这是使用createStore的“旧式”方式的延续。有关讨论和历史记录,请参阅Redux issue #2128