2017-03-22 1 views
1

すでにreduxストアに接続されているコンポーネントがあり、dispatchが注入されています。withHandlersのwithReducerからrecomposeローカルディスパッチ関数を呼び出す

compose(handlers, enhancer)(LayerListItem) 

dispatchLocal小道具:私はときに私composeことがわかり

const reducer = (state, action) => { 
    switch (action.type) { 
    case 'SET_ACTIVE_TAB': 
     console.log('recieved action', action) 
     const { activeTab } = action 
     return activeTab 
    default: 
    return state 
    } 

}

const initialState = 'actions' 

const handlers = withHandlers({ 
    onTabClick: props => (e, { name }) => { 
    const { dispatchLocal } = props 
    dispatchLocal({ 
     type: 'SET_ACTIVE_TAB', 
     activeTab: name 
    }) 
    } 
}) 

const enhancer = withReducer('activeTab', 'dispatchLocal', reducer, initialState) 

:私はこのようなwithReducerwithHandlersを使用して、コンポーネントのローカル状態を更新しようとしていますhandlerには定義されていません。 recomposeでアクション作成者を作成してバインドする最良の方法は、アプリケーションの状態を更新することです。あなたがwithHandlersの右にwithReducerを移動する必要があり

答えて

0

:このように

compose(
    withReducer(...), 
    withHandlers(...) 
) 

withReducerは、withHandlersがそれを消費することができ、最初のディスパッチ関数を作成し、propsに追加します。

関連する問題