Я новичок в 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'});
Спасибо заранее!