栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何使用connect w / Redux从this.props获取简单的调度?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何使用connect w / Redux从this.props获取简单的调度?

默认情况下

mapDispatchToProps
dispatch => ({ dispatch })

因此,如果您不指定的第二个参数
connect()
,则会将其
dispatch
作为prop注入到组件中。

如果您将自定义函数传递给

mapDispatchToProps
,则可以使用该函数执行任何操作。
一些例子:

// inject onClickfunction mapDispatchToProps(dispatch) {  return {    onClick: () => dispatch(increment())  };}// inject onClick *and* dispatchfunction mapDispatchToProps(dispatch) {  return {    dispatch,    onClick: () => dispatch(increment())  };}

为了节省您的输入,Redux提供

bindActionCreators()
了以下功能:

// injects onPlusClick, onMinusClickfunction mapDispatchToProps(dispatch) {  return {    onPlusClick: () => dispatch(increment()),    onMinusClick: () => dispatch(decrement())  };}

到这个:

import { bindActionCreators } from 'redux';// injects onPlusClick, onMinusClickfunction mapDispatchToProps(dispatch) {  return bindActionCreators({    onPlusClick: increment,    onMinusClick: decrement  }, dispatch);}

当道具名称与动作创建者名称匹配时,甚至更短:

// injects increment and decrementfunction mapDispatchToProps(dispatch) {  return bindActionCreators({ increment, decrement }, dispatch);}

如果您愿意,绝对可以

dispatch
手动添加:

// injects increment, decrement, and dispatch itselffunction mapDispatchToProps(dispatch) {  return {    ...bindActionCreators({ increment, decrement }), // es7 spread syntax    dispatch  };}

没有官方建议您是否应该这样做。

connect()
通常用作支持Redux的组件和不支持Redux的组件之间的边界。这就是为什么我们通常觉得它没有意义注入
两个 有时限的行动创造者和
dispatch
。但是,如果您觉得需要这样做,请随意。

最后,您现在使用的模式是一个快捷方式,它甚至比call更短

bindActionCreators
。当您要做的只是return时
bindActionCreators
,您可以忽略呼叫,而不是这样做:

// injects increment and decrementfunction mapDispatchToProps(dispatch) {  return bindActionCreators({ increment, decrement }, dispatch);}export default connect(  mapStateToProps,  mapDispatchToProps)(App);

可以这样写

export default connect(  mapStateToProps,  { increment, decrement } // injects increment and decrement)(App);

但是,每当您想要更自定义的内容(例如传递)时,就必须放弃这种简短的语法

dispatch



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/668809.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号