在函数或 class 中使用 useDispatch 可以吗?

is it okay to use `useDispatch` inside a function or a class?

可以在 functionclass 中使用 useDispatch 钩子吗?我不是在谈论功能或 class 组件。我想从 function/class.

发送状态更改
// Example: utils.ts

export function foo(){
  const bar = getBar();
  const dispatch = useDispatch();
  dispatch(addBar(bar))
}

不行,use开头的是钩子,只能用在函数组件中

如果您想从一个函数中访问调度,请执行以下操作之一

  • 将函数写成 thunk
  • 将 dispatch 作为参数传入
  • 导入您的商店并致电 store.dispatch

以上回答正确!! 补充一下,如果您想进行一些异步调用或获取状态,此语法可能对初学者有所帮助。

必需 - Connect 应该包装在根组件中。

store.dispatch(doSomething())

export function doSomething() {
    return async (dispatch, getState, { client }) => { //your code } }