Различение монтажа компонентов или увлажнения в React 16.1.1
У меня есть ScrollToTopOnMount
как реализовано здесь с
componentDidMount(prevProps) {
window.scrollTo(0, 0)
}
Это прекрасно работает, за исключением случаев, когда я объединяю это с SSR и увлажнением, когда происходит гидратация, моя страница поднимается наверх.
Другие ответы, такие как этот, давали мне надежду на то, что может быть какой-то способ различить, законно ли монтируется компонент, или просто гидратируется. Тем не менее, похоже, что это не тот случай, когда реагирует 16.1.1, когда и сервер, и клиент, кажется, вызывают componentWillMount
,
Есть ли способ, чтобы метод жизненного цикла определял, монтируется ли он там, где нет DOM, или гидратирует существующий узел?
1 ответ
ReactDOM.hydrate
имеет обратный вызов, когда он завершает. Одним из решений было бы установить и снять глобальную переменную window.hydrating = true
и дифференцировать на основе этого, когда компонент монтируется.