Задать вопрос
  • Как исправить ReferenceError: window is not defined?

    @eroslove457
    Денис верно отметил, что
    Запуск SSR происходит в Node.js окружении, где нет доступа к браузерным объектам document, window, navigator а также к API браузера XHR, fetch и пр.


    Однако возможно использовать кастомный хук, который будет вычислять ширину viewport на стороне клиента:

    import { useState, useEffect } from "react";
    
    const useViewPortWidth = () => {
    const [width, setWidth] = useState(0);
    useEffect(() => {
    const handleResize = () => setWidth(window.innerWidth);
    handleResize();
    
        window.addEventListener("resize", handleResize);
        return () => window.removeEventListener("resize", handleResize);
    
    }, []);
    return width;
    };
    
    export default useViewPortWidth;


    Затем вы добавляете хук в ваш компонент и таким образом вычисляете ширину видимой области.
    Ответ написан
    Комментировать