如何绕过自定义钩子的useEffect依赖?

问题描述 投票:0回答:1

这是我的示例代码:

const { getConversionList, conversionList } = useConversion();

useEffect(() => {
  getConversionList();
}, []);

useConversion 是一个 GraphQL 解析器挂钩,我在添加依赖项时遇到 Linting 错误。但如果我添加依赖项,那么它就是无限渲染。

如何安全绕过它?

尝试通过导致无限渲染来添加依赖项。我希望 useEffect 在加载时仅运行一次,因此添加 [] 作为依赖项

javascript reactjs typescript eslint apollo-client
1个回答
0
投票
  1. 禁用该特定行的 linting 规则。

  2. 使用引用来存储函数,这样它就不会在每次渲染时发生变化。

    从 'react' 导入 { useEffect, useRef }; const { getConversionList, conversionList } = useConversion();

    const getConversionListRef = useRef(getConversionList);

    useEffect(() => { getConversionListRef.current();

    }, []);

© www.soinside.com 2019 - 2024. All rights reserved.