React Hook useEffect缺少依赖项:'i18n'

gcxthw6b  于 6个月前  发布在  React
关注(0)|答案(1)|浏览(88)

我在useEffect中收听i18的languageChanged事件:

useEffect(() => {
  const onLanguageChange = () => {
    // setLanguageChanged(true)
  }

  i18n.on('languageChanged', onLanguageChange)

  return () => {
    i18n.off('languageChanged', onLanguageChange)
  }
}, [])

字符串
并得到警告:
ESLint: React Hook useEffect has a missing dependency: 'i18n'.
我不想通过使用eslint-disable来忽略此警告。
我应该将依赖数组更新为[i18n]吗?或者还有其他方法吗?

bfnvny8b

bfnvny8b1#

你没有太多的选择,除了完全删除react-hooks/exhaustive-deps linting规则。

  • 您可以通过选择性地禁用该行的react-hooks/exhaustive-deps规则来忽略缺少的依赖项:
useEffect(() => {
  const onLanguageChange = () => {
    // setLanguageChanged(true)
  };

  i18n.on('languageChanged', onLanguageChange);

  return () => {
    i18n.off('languageChanged', onLanguageChange);
  };
  // eslint-disable-next-line react-hooks/exhaustive-deps
}, []);

字符串

  • 您可以添加缺少的依赖项i18n
useEffect(() => {
  const onLanguageChange = () => {
    // setLanguageChanged(true);
  };

  i18n.on('languageChanged', onLanguageChange);

  return () => {
    i18n.off('languageChanged', onLanguageChange);
  };
}, [i18n]);

相关问题