Получить перекомпоновать локальную функцию отправки из withReducer в withHandlers
У меня есть компонент, который уже подключен к redux
хранить и имеет dispatch
вводится к нему. Я пытаюсь обновить локальное состояние компонента, используя withReducer
а также withHandlers
как это:
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)
Я нахожу это, когда я compose
:
compose(handlers, enhancer)(LayerListItem)
dispatchLocal
опора не определена в пределах handler
, Каков наилучший способ создания и связывания действий создателей с recompose
обновить состояние приложения.
1 ответ
Вы должны двигаться withReducer
справа от withHandlers
:
compose(
withReducer(...),
withHandlers(...)
)
В этом случае, withReducer
сначала создаст диспетчерскую функцию и добавит ее props
, затем withHandlers
может потреблять это.