Вступить в клуб →
лёгкаявопросNext.js и рендеринг: SSR, SSG, гидратация

Страница падает на сервере с ReferenceError: window is not defined

export default function ProductPage({ product }) {
  const isMobile = window.innerWidth < 768;
  return isMobile ? <MobileGallery /> : <DesktopGallery />;
}

В браузере при разработке всё работало, а при серверном рендеринге страница падает: ReferenceError: window is not defined. В чём причина?

  • Компонент выполняется на сервере, где нет браузерных объектов вроде window
  • window нужно импортировать из пакета react-dom
  • window доступен только внутри обработчиков событий, даже в браузере
  • Серверный рендеринг запрещает условный рендеринг компонентов

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела