缺少依赖:React 中的“dispatch”

Sha*_*ker 1 reactjs redux react-redux react-hooks use-effect

在我的react/redux应用程序中,我使用dispatch来调用每次安装组件时从redux中的状态检索数据的操作。问题发生在useState我的方法不起作用

以下是我收到的错误:

React Hook useEffect 缺少依赖项:“dispatch”。包含它或删除依赖项数组。像“getInvoiceData”这样的外部范围值不是有效的依赖项,因为改变它们不会重新渲染组件react-hooks/exhaustive-deps

这是我的代码:

const TableSection = () => {

  const invoiceData = useSelector((state => state.tables.invoiceData));

  const dispatch = useDispatch() 

  useEffect(() => {
    dispatch(getInvoiceData());
  }, [getInvoiceData]);

(...)

export default TableSection;
Run Code Online (Sandbox Code Playgroud)

Den*_*ash 5

您需要将dispatch函数添加到 dep 数组:

const TableSection = () => {
  const dispatch = useDispatch() 

  useEffect(() => {
    dispatch(getInvoiceData());
  }, [dispatch]);
Run Code Online (Sandbox Code Playgroud)

将其添加到 dep 数组是安全的,因为它的身份在渲染中是稳定的,请参阅文档

注意:就像在 React 的 useReducer 中一样,返回的调度函数标识是稳定的,并且不会在重新渲染时更改(除非您更改传递给 的存储,这将是极其不寻常的)。