Я новичок в JavaScript и умею реагировать, и у меня есть существующий проект, в который мне нужно добавить функциональность. Он использует redux
и redux-thunk
с redux-saga
для отправки запросов API. В настоящее время он поддерживает только 1 dispatch
функцию на компонент, и мне нужно dispatch
несколько типов запросов к саге. Я пытаюсь bindActionCreators
добавить dispatch
в магазины, но безрезультатно.. Я полностью потерял часть mapDispatchToProps
и как мне потом "запустить действие"..
в одной отправке в реквизит я сделал это:
let sdtp = (arg) => {
return (dispatch) => {
dispatch({
type: 'GET_TEST_HASHMAP_SAGA',
hashmap: arg
})
}
}
export default MainPage = connect(
mapStateToProps,
{ sdtp }
)(MainPage);
и я могу «получить доступ к функции» (это правильный термин? по крайней мере, моя сага вызывается) внутри компонента MainPage.render()
:
`this.props.sdtp({'hello':'world'});`
но когда я перехожу на использование bindActionCreators
, я больше не могу получить к нему доступ в реквизитах (я пробовал так много разных экспериментов, что почти сдался)
Вот как я строю свои множественные отправки:
let action1 = (args) => {
return (dispatch) => {
dispatch({
type: 'GET_TEST_HASHMAP_SAGA',
hashmap: arg
});
}
}
let action2 = (args) => {
return (dispatch) => {
dispatch({
type: 'GET_TEST_HASHMAP_SAGA2',
params: arg
});
}
}
let action3 = (args) => {
return (dispatch) => {
dispatch({
type: 'GET_TEST_HASHMAP_SAGA3',
args: arg
});
}
}
let mdtp = (dispatch) => {
return {
actions: bindActionCreators(action1, action2, action3, dispatch)
}
}
export default MainPage = connect(
mapStateToProps,
{ mdtp }
)(MainPage);
Я пытаюсь получить доступ к actions
следующим образом:
this.props.mdtp.action1({arg: 'hello'});
Заранее спасибо!