Денис верно отметил, что
Запуск 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;
Затем вы добавляете хук в ваш компонент и таким образом вычисляете ширину видимой области.