javascript - react redux 为什么使用 dispatch = useDispatch()?
问题描述
我遵循了 react-redux 教程,示例代码中经常出现以下模式:
import { useDispatch} from 'react-redux'
...
const dispatch = useDispatch()
https://redux.js.org/tutorials/essentials/part-3-data-flow#adding-new-posts
像这样重新声明dispatch函数的目的是什么?
我查看了 react-redux 代码,并且(我认为?)钩子工厂返回了一个函数。那么重新声明dispatch hook的目的是为了将其用作函数表达式而不是函数声明以提高性能?
为什么没有为 useSelector 钩子做这件事?
提前致谢
解决方案
我想知道为什么使用 const dispatch = useDispatch() 或 const history = useHistory()
这就是那些钩子的设计方式。这些钩子的工作分别是“请给我调度函数”和“请给我历史对象”。这是一种将依赖项添加到组件中的方法,而无需将其作为道具传递。所以所有这些钩子所做的就是返回那条数据,然后你的组件可以从那里根据需要使用它。
推荐阅读
- angular - Angular 9 [立即]显示数据更改而无需重新加载
- java - 如何验证(使用单元测试)错误堆栈是否打印在日志文件中?
- html - 导航栏 - 在我的 html 文件中不起作用
- ios - xcode ios'没有这样的模块GoogleSignIn'
- reactjs - 在 NextJS 中使用“getStaticPaths”和“getStaticProps”创建动态路由
- docker - tar -xvf 在 dockerfile 中失败
- node.js - 我应该在整个服务器运行期间保留 Sequelize 实例吗?
- objective-c - 在 macOS Objective-C 应用程序中,我将 NSMutableSet 子类化为强制执行不同于 isEqual 的相等性。我的实施好吗?
- sequelize.js - Discord.js sequelize.import 不是函数
- php - 缓存属性og php