我有一个 ScrollToTopOnMount
实现 here与
componentDidMount(prevProps) {
window.scrollTo(0, 0)
}
效果很好,除了当我将它与 SSR 和保湿结合使用时,我的页面会在保湿发生时快速跳到顶部。
其他答案如this one让我希望可能有某种方法可以区分组件是合法安装还是只是水合。然而,这似乎不是 react-dom 16.1.1 的情况,服务器 和 客户端似乎都调用了 componentWillMount
。
有没有办法让生命周期方法确定它是在没有 DOM 的地方挂载还是在水化现有节点?
最佳答案
ReactDOM.hydrate
在完成时有一个回调。一种解决方案是设置和取消设置全局变量 window.hydrating = true
并在组件安装时基于此进行区分。
关于reactjs - 在 React 16.1.1 中区分组件安装或水合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47299985/