reactjs - mapDispatchToProps 在 Redux 领域的用途
问题描述
mapDispatchToProps 是否有目的:
const mapDispatchToProps = dispatch => {
return {
addProductToCart: product => dispatch(addProductToCart(product))
}
}
或者这样做是否可以接受:
const mapDispatchToProps = dispatch => {
return {dispatch};
}
然后只需调用:
props.dispatch()
在组件中
解决方案
mapDispatchToProps
允许您简单地指定组件需要调度的操作。您可能会采用这种方法,因为它更具声明性(让mapDispatchToProps
处理所有繁重的工作,以便您可以轻松地从组件调用函数),或者您可能希望与未连接的 redux 组件共享调度函数。
事实上,完全没有mapDispatchToProps
功能是完全可以接受的。
另外根据您的示例。而不是执行以下操作:
const mapDispatchToProps = dispatch => {
return {dispatch};
}
您可以简单地从方法中排除该mapDispatchToProps
函数,connect
如下所示:
connect(mapStateToProps)(MyComponent)
然后在您的组件中执行以下操作:
props.dispatch({ type: 'MY_ACTION' })}
推荐阅读
- python - 如何在没有迁移命令的情况下在 Django admin 中添加表
- python - 为什么我的程序没有读取引用文件(文件名)中的第一行代码?
- angular - angular-CLI 6 项目间通信
- php - preg_replace 返回空字符串
- reactjs - React Router - 内容安全策略指令:“default-src 'self'
- awk - 在 bash 中使用 awk 过滤行
- java - RedisOperationsSessionRepository:无法发布会话警告的 SessionDestroyedEvent
- django - 如何计算 Django 中 model_set 的不同?
- r - 具有不同颜色异常值和几何文本编号标签的散点图
- apache - 将所有可能的域和子域永久重定向到不带 www 的 https (https://example.com)