在 useEffect 钩子上获得无限循环

时间:2020-12-29 07:56:42

标签: javascript reactjs react-hooks

尝试构建工具提示组件。当工具提示远离视口时,需要切换工作正常的工具提示位置。但是当工具提示远离视口时 useEffect 无限运行。无法找到根本原因。

添加沙盒链接 https://codesandbox.io/s/dbpkr

2 个答案:

答案 0 :(得分:0)

尝试使用依赖数组

useEffect(() => {;
    let intersectionObserver = new IntersectionObserver(function (entries) {
      if (!entries[0].isIntersecting) {
        setMoveBottom(!moveBottom);
      }
    });

    if (refElement) intersectionObserver.observe(refElement);

    return () => {
      if (refElement) intersectionObserver.unobserve(refElement);
    };
  }, [setMoveBottom, moveBottom, refElement]);

答案 1 :(得分:0)

是的,因为您没有为 useEffect 钩子传递依赖项。

因此添加空数组或在 useEffect 末尾传递任何依赖项

例如:

 useEffect(() => {


}, [])

有关详细信息,请阅读此enter link description here