React. js: useEffect с прослушивателем событий изменения размера окна не работает - PullRequest
0 голосов
/ 11 июля 2020

Я использую этот код для прослушивания событий изменения размера в функциональном компоненте и повторного рендеринга компонента при изменении размера окна. Проблема в том, что ни один из слушателей событий ничего не распечатывает, поэтому я думаю, что неправильно понимаю, как я здесь использую useEffect.

  const [dimensions, setDimensions] = React.useState({
    width: window.innerWidth,
    height: window.innerHeight,
  });

  useEffect(() => {
    const handleResize = () => {
      console.log(dimensions.width);
      setDimensions({
        width: window.innerWidth,
        height: window.innerHeight,
      });
      window.addEventListener("load", handleResize, false);
      window.addEventListener("resize", handleResize, false);
    };
  });

1 Ответ

2 голосов
/ 11 июля 2020
const [dimensions, setDimensions] = React.useState({
    width: window.innerWidth,
    height: window.innerHeight,
  });
  console.log(dimensions);
  const handleResize = () => {
    setDimensions({
      width: window.innerWidth,
      height: window.innerHeight,
    });
  }
  React.useEffect(() => {
    window.addEventListener("resize", handleResize, false);
  }, []);

  
...