我尝试从一个处理api调用的非组件函数内部调用dispatch。结构如下:
-MainApp.js
-scripts/
--auth.js
在scripts/auth.js中,它看起来像这样:
export async function signIn(nav) {
const dispatch = useDispatch();
try {
...
dispatch(setIsAuthed(true));
}
...
}
我从和onPress调用了signIn()。我得到了一个无效的挂钩调用。我做错了什么?
2条答案
按热度按时间x7yiwoj41#
挂钩是允许您从函数组件“挂钩到”React状态和生命周期特性的函数
不要从常规JavaScript函数中调用挂钩。相反,您可以:
从React函数组件调用挂钩。
从自定义挂钩调用挂钩
您应该导入
store
并调用store.dispatch
以调度操作4zcjmb1e2#
Yilmaz的建议是错误的。不要 * 这样做!
你应该 * 永远 * 将存储直接导入到代码库的其余部分。相反,如果你真的 * 必须 * 在其他地方访问存储,从入口点注入它。