在函数或 class 中使用 useDispatch 可以吗?
is it okay to use `useDispatch` inside a function or a class?
可以在 function
或 class
中使用 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 } }
可以在 function
或 class
中使用 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 } }