首页 > 解决方案 > 为什么我不能在 useEffect 中使用 dispatch a thunk?

问题描述

里面thunks.js

export const displayAlert = (text) => () => {   alert(`${text}`); }

在另一个文件中

const dispatch = useDispatch();

const example = () => {    
    useEffect(
        ()=>{dispatch(displayAlert('Hello'))}
        ) }

给我看

未捕获的错误:无效的挂钩调用

标签: reactjsreduxredux-thunk

解决方案


useDispatch钩子移动到组件中,并用大写字母重命名(以免触发另一个 lint 警告):

const Example = () => {
  const dispatch = useDispatch();
  useEffect(() => {
    dispatch(displayAlert("Hello"));
  });
};

请参阅钩子规则


推荐阅读