加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

react-native – 如何使用redux-thunk实现`bindActionCreators`

发布时间:2020-12-15 05:05:40 所属栏目:百科 来源:网络整理
导读:我是一个很新的 JavaScript和本地反应,我有一个我需要添加功能的现有项目.它使用redux和redux-thunk与redux-saga发送API请求.目前它每个组件仅支持1个调度功能,我需要向saga分派几种类型的请求.我正在尝试使用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是第二个……问题出在那里.

bindActionCreators is nothing but a for loop …把??它留下来,你会更好地了解正在发生的事情.

试试这个:

function mapDispatchToProps(dispatch) {
  return {
     action1: (args) => dispatch(action1(args)),action2: (args) => dispatch(action2(args)),}
}

 export default MainPageContainer = connect(
   mapStateToProps,mapDispatchToProps
 )(MainPage)

并称他们为
this.props.action1(args)和this.props.action2(args)

如果你坚持使用高估的bindActionCreators,语法将是:

function mapDispatchToProps(dispatch){
   return {
     actions: bindActionCreators({
       action1,},dispatch)
   }
 }

此外,使用const而不是let,因为您没有重新定义该值.最好以与组件的类名不同的名称导出连接的组件.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读