Как исправить несовпадение текста при hydration

Первый клиентский результат должен совпасть с серверным. Передайте фиксированное значение с сервера или покажите общий placeholder, а локальное время вычислите после монтирования.

Короткий ответ

Что ответить на собеседовании

Первый клиентский результат должен совпасть с серверным. Передайте фиксированное значение с сервера или покажите общий placeholder, а локальное время вычислите после монтирования.

Подробный разбор

Ответ с пояснениями

Условие

Серверный React-рендер и первый клиентский рендер выводят new Date().toLocaleString(), поэтому иногда возникает Text content does not match. Как обеспечить совпадение?

Ответ

Первый клиентский результат должен совпасть с серверным. Передайте фиксированное значение с сервера или покажите общий placeholder, а локальное время вычислите после монтирования.

Также зафиксируйте locale и часовой пояс, если текст формируется с обеих сторон. Проверьте Math.random, browser-only данные, невалидную HTML-вложенность и условные ветки по window. Подавление предупреждения не исправляет источник рассогласования и не должно быть универсальным решением. Серверные и клиентские данные должны иметь согласованный начальный снимок.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее