代码如下:
...
class xx extends React.Component {
constructor(props) {
super(props);
this.bodyRef = React.createRef();
}
componentWillUpdate = () => {
console.log(this.bodyRef.current.scrollTop);
}
componentWillUnmount = () => {
console.log(this.bodyRef.current.scrollTop);
}
render() {
return (
...
<Grid ref={this.bodyRef}>...</Grid>
...
)
}
}
...
我是想在页面切换时拿到 Grid 中内容滚动的位置,但是在 componentWillUnmount 中打印 this.bodyRef.current.scrollTop
的值一直是 0。
在 componentWillUpdate 中打印的是正确的滚动距离。
所以是我理解有误吗,当发生 componentWillUnmount 时,“上一个” 页面的 DOM 是拿不到了?
1、你在其他生命周期可以拿到
scrollTop
嘛?2、componentWillUnmount 在你切换tab的时候会被执行嘛?