在React 16.1.1中区分元件安装或保湿

时间:2017-11-15 05:26:23

标签: reactjs react-ssr

我有一个ScrollToTopOnMount已实施here

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

哪种方法效果很好,除非我将其与SSR和保湿剂结合使用,当水合作用发生时,我的页面会跳到顶部。

this one之类的其他答案让我有希望可以通过某种方式区分某个组件是合法安装,还是只是保持水分。但是,似乎并非像react-dom 16.1.1那样,客户端的服务器似乎都调用了componentWillMount

有没有办法让生命周期方法确定它是否被安装在没有DOM或保湿现有节点的地方?

1 个答案:

答案 0 :(得分:2)

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