如何自定义 hooks



  • 我这样自定义了一个 hooks 页面直接卡死了,浏览器的标签页都不能关掉。我这样定义的方式是不是弄错了呀,应该如何自定义hooks呢

    export const useWindowWidth = () => {
      const [innerWidth, setInnerWidth] = useState(0);
      useEffect(() => {
        setInnerWidth(window.innerWidth);
        window.onresize = () => {
          setInnerWidth(window.innerWidth);
        };
        return () => {
          window.onresize = () => {};
        };
      });
      return innerWidth;
    };
    


  • 最后发现一直在执行这段代码,所以把浏览器卡住了。需要在useEffect里面加个 [0]的参数只执行一次就好了
    setInnerWidth(window.innerWidth);


登录后回复