首页 > 解决方案 > 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 钩子做这件事?

提前致谢

标签: javascriptreactjsreact-redux

解决方案


我想知道为什么使用 const dispatch = useDispatch() 或 const history = useHistory()

这就是那些钩子的设计方式。这些钩子的工作分别是“请给我调度函数”和“请给我历史对象”。这是一种将依赖项添加到组件中的方法,而无需将其作为道具传递。所以所有这些钩子所做的就是返回那条数据,然后你的组件可以从那里根据需要使用它。


推荐阅读