2017-03-17 18 views
0

だから、私は店を作成するには、ReduxのエンハンサーとapplyMiddleware

をReduxのコードベースをチェックアウトするよ、私たちは再来によって公開さCREATESTORE関数を呼び出している、上記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) 
    } ... 

、エンハンサー

enhancer(createStore)(reducer, preloadedState) 

...また、私は最初の行に渡さapplyMiddleware機能である、この部分で呼び出さしかし、私はapplyMiddleware機能をチェックすると、3つのパラメータがありますされます(減速、preloadedState、エンハンサー)...

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

...

それは常に基本的に未定義の権利ですか?私はちょうどそれがそこにあるか、私が何かを欠けている場合だけ興味がある。

enhancer(createStore)(reducer, preloadedState) 

答えて

1

ええ、これは(驚くほど)よく起こります。それはcreateStoreを使用する "旧式の"方法のホールドオーバーです。その議論がなぜ存在するかについては、議論と歴史についてはRedux issue #2128を参照してください。

関連する問題