繁体   English   中英

react redux 为什么使用dispatch = useDispatch()?

[英]react redux why use 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

像这样重新声明调度函数的目的是什么?

我查看了 react-redux 代码,(我认为?)钩子工厂返回一个函数。 那么重新声明调度钩子的目的是将其用作函数表达式而不是函数声明以提高性能吗?

为什么这不是为 useSelector 钩子完成的?

提前致谢

useSelector 钩子是一个钩子,它可以访问函数组件中的 Redux 存储。 您可以将一个函数传递给 useSelector 以从您的商店访问正确的值。 假设您的商店看起来像这样:

{ auth: 
    { user: 
        {firstName, lastName }
    }
}

如果你想在你的函数组件中访问用户的名字,你可以像这样使用 useSelector 函数:

const firstName = useSelector(state => state.auth.user.firstName);

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM