reactjs – mapDispatchToProps和matchDispatchToProps之间有什
标题解释了这些问题.
我正在使用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.这完全没有效果. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |