react-native – 如何使用redux-thunk实现`bindActionCreators`
我是一个很新的
JavaScript和本地反应,我有一个我需要添加功能的现有项目.它使用redux和redux-thunk与redux-saga发送API请求.目前它每个组件仅支持1个调度功能,我需要向saga分派几种类型的请求.我正在尝试使用bindActionCreators将调度添加到商店但无济于事.我完全迷失在mapDispatchToProps部分,以及如何“之后”触发“动作”.
在单一派遣到道具,我这样做: let sdtp = (arg) => { return (dispatch) => { dispatch({ type: 'GET_TEST_HASHMAP_SAGA',hashmap: arg }) } } export default MainPage = connect( mapStateToProps,{ sdtp } )(MainPage); 我可以在MainPage.render()组件中“访问函数”(这是正确的术语吗?至少我的saga被调用): `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); 我试图访问这样的动作: this.props.mdtp.action1({arg:’hello’}); 提前致谢!
连接有四个参数……大多数人通常只需要前两个.
你有mapStateToProps,我假设它是一个函数. mapDispatchToProps是第二个……问题出在那里.
试试这个: function mapDispatchToProps(dispatch) { return { action1: (args) => dispatch(action1(args)),action2: (args) => dispatch(action2(args)),} } export default MainPageContainer = connect( mapStateToProps,mapDispatchToProps )(MainPage) 并称他们为 如果你坚持使用高估的bindActionCreators,语法将是: function mapDispatchToProps(dispatch){ return { actions: bindActionCreators({ action1,},dispatch) } } 此外,使用const而不是let,因为您没有重新定义该值.最好以与组件的类名不同的名称导出连接的组件. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |