如何将数组的初始化包装在其自己的 useMemo() Hook 中?

ALi*_*arr 14 reactjs react-native react-hooks

有人可以给出此警告消息的解决方案吗?

137:7 警告 “slider1”数组使 useEffect Hook(第 143 行)的依赖项在每次渲染时都会发生变化。要解决此问题,请将 'slider1' 的初始化包装在其自己的 useMemo() Hook React-hooks/exhaustive-deps 中

138:7 警告 “slider2”数组使 useEffect Hook(第 143 行)的依赖项在每次渲染时都会发生变化。要解决此问题,请将“slider2”的初始化包装在其自己的 useMemo() 钩子中 React-hooks/exhaustive-deps

我是新手,没有任何反应经验。如果有人能提供完整的解决方案就好了。

这是代码:

  const [nav1, setNav1] = useState(null);
  const [nav2, setNav2] = useState(null);
  let slider1 = [];
  let slider2 = [];

  useEffect(() => {
  setNav1(slider1);
  setNav2(slider2);
  }, [slider1, slider2]);
Run Code Online (Sandbox Code Playgroud)

小智 31

const slider1 = useMemo(() => [], []);
Run Code Online (Sandbox Code Playgroud)

就如此容易 :)

还要知道这里的问题,让React中的变量在每个tick上重新创建自己,因为每个tick都会重新运行useEffect,你会陷入无限循环:)你也可以使用它作为状态默认值而不是null:)