不能在 useEffect 中使用 useDispatch

Cant use a useDispatch inside a useEffect

所以我在 useEffect 中使用 useDispatch 时收到以下错误

Line 58:5: React Hook "useDispatch" cannot be called inside a callback. React Hooks must be called in a React function component or a custom React Hook function react-hooks/rules-of-hooks

我有如下组件

import { useSelector, useDispatch } from 'react-redux';
import { myModules } from '#/redux/modules';

const Component = () => {
 const images = useSelector(getImages)

  useEffect( () =>  {
    useDispatch(myModules.actions.setMaskVisible(true));
  }, [images]);

}

setMaskVisible 差不多

export const SET_MASK_VISIBLE = 'caps/SET_MASK_VISIBLE';
const setMaskVisible = payload => {
  return {
    type: SET_MASK_VISIBLE,
    payload
  };
};

export default { setMaskVisible }

我基本上是在图像更新时尝试更改 redux 值。为什么它不起作用?

看看documentation。你调用useDispatch得到一个函数然后调用那个函数:

import { useSelector, useDispatch } from 'react-redux';
import { myModules } from '#/redux/modules';

const Component = () => {
 const images = useSelector(getImages)
 const dispatch = useDispatch();

  useEffect( () =>  {
    dispatch(myModules.actions.setMaskVisible(true));
  }, [images]);

}