use*_*307 3 reactjs react-redux react-hooks
我正在将 React with Redux 项目从类组件过渡到钩子。
为了调度操作,我从react-redux导入{useDispatch}。
然后,在每个功能组件中,我有
const dispatch = useDispatch();
Run Code Online (Sandbox Code Playgroud)
进而
dispatch(someAction())
Run Code Online (Sandbox Code Playgroud)
这是正确的处理方法还是应该 const dispatch = useDispatch()将其抽象为单独的文件并在整个过程中重复使用?
谢谢
不,像你拥有的那样去做。将它放在自己的文件中不会增加任何价值,它只是一个包装另一个钩子的自定义钩子。
挂钩react-redux依赖于上下文,因此您仍然必须在每个组件中调用自定义挂钩,否则它将无法访问所需的上下文。您将无法像导入后dispatch那样导出并调用它。dispatch(someAction())
useDispatch您可以在此处查看实施情况。您会注意到它最终使用的useReduxContext只是 的包装器useContext(ReactReduxContext)。这意味着使用的功能组件useDispatch必须是Provider设置该上下文的子组件。
因此调用useDispatch抽象函数是行不通的。为了让它发挥作用,你首先会失去抽象它的价值。
| 归档时间: |
|
| 查看次数: |
691 次 |
| 最近记录: |