React 在 componentWillUnmount 时获取不到 DOM 的 scrollTop 值?

代码如下:

...
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 是拿不到了?

阅读 2.9k
1 个回答

1、你在其他生命周期可以拿到 scrollTop 嘛?
2、componentWillUnmount 在你切换tab的时候会被执行嘛?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题