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

Кнопка «В корзину» в серверном компоненте не компилируется

Проект на App Router. Страница товара — серверный компонент, который читает товар из базы. Разработчик добавил в неё кнопку:

<button onClick={() => addToCart(product.id)}>В корзину</button>

Сборка падает с ошибкой о том, что обработчики событий нельзя передавать из серверного компонента. Как правильно?

  • Вынести кнопку в клиентский компонент с "use client" и отрендерить его на странице
  • Добавить "use client" в начало всей страницы товара
  • Заменить onClick на атрибут onclick строкой
  • Обернуть кнопку в Suspense, чтобы обработчик подключился позже

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

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

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

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