3

我在这里ScrollToTopOnMount实现了一个

componentDidMount(prevProps) {
  window.scrollTo(0, 0)
}

效果很好,除非我将它与 SSR 和水合结合使用,否则当水合发生时,我的页面会卡到顶部。

诸如之类的其他答案给了我希望,可能有某种方法可以区分组件是合法安装还是仅被水合。然而,这似乎不是 react-dom 16.1.1 的情况,服务器客户端似乎都调用componentWillMount.

有没有办法让生命周期方法确定它是安装在没有 DOM 的地方还是水合现有节点?

4

1 回答 1

4

ReactDOM.hydrate完成时有回调。一种解决方案是设置和取消设置全局window.hydrating = true变量,并根据组件安装时的变量进行区分。

于 2017-11-15T19:28:37.037 回答