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

reactjs – mapDispatchToProps和matchDispatchToProps之间有什

发布时间:2020-12-15 09:33:03 所属栏目:百科 来源:网络整理
导读:标题解释了这些问题. 我正在使用redux将用户状态更改为活动或活跃用户. 在matchDispatchToProps中: function matchDispatchToProps(dispatch){ return bindActionCreators({selectUser: selectUser},dispatch);} 如果是mapDispatchToProps: const mapDispa
标题解释了这些问题.

我正在使用redux将用户状态更改为活动或活跃用户.

在matchDispatchToProps中:

function matchDispatchToProps(dispatch){
  return bindActionCreators({selectUser: selectUser},dispatch);
}

如果是mapDispatchToProps:

const mapDispatchToProps = (dispatch) => ({
    dispatch({selectUser: selectUser})
})

请解释一下这些之间的区别.

解决方法

这里有两件事.

首先,connect()的第二个参数的正确名称称为mapDispatchToProps.它也经常被称为mapDispatch.但是,就像JS中的任何函数调用一样,调用变量也无关紧要 – 您可以调用函数mapDispatchToProps,mapDispatch,fred或someFunctionName. (那就是说,我不知道为什么你叫它matchDispatchToProps,或者你听到那个名字.)

其次,你的两个示例函数有很大的不同. mapDispatch函数的目的是返回一个对象,该对象中的每个键/值将成为该组件的prop.通常,您将在该对象内返回绑定动作创建函数,以便该组件将接收像this.props.doSomeWork()这样的道具.您的第一个示例,它确实返回bindActionCreators({selectUser},dispatch),将正确地执行此操作.

您的第二个示例似乎不是有效的JS语法:

const mapDispatchToProps = (dispatch) => ({
    dispatch({selectUser: selectUser})
})

我们有一个箭头函数可以立即返回一个对象,但它不是在对象中声明键/值对,而是试图立即调用dispatch.这完全没有效果.

(编辑:李大同)

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

    推荐文章
      热点阅读