开发者问题收集

react 无法设置未定义的属性‘scrollTop’

2019-06-03
9908

我有一个带有注销按钮的仪表板组件。单击注销时,使用 fire-base 注销并重定向到登录组件。我收到以下错误。我该如何解决这个问题。

TypeError: Cannot set property 'scrollTop' of undefined
Dashboard.componentDidUpdate

  69 | }
  70 | componentDidUpdate(e) {
  71 |   if (e.history.location.pathname !== e.location.pathname) {
> 72 |     this.refs.mainPanel.scrollTop = 0;
     | ^  73 |     if (this.state.mobileOpen) {
  74 |       this.setState({ mobileOpen: false });
  75 |     }
1个回答

在尝试设置 scrollTop 之前,请确保 this.refs.mainPanel 存在:

if (this.refs.mainPanel) {
  this.refs.mainPanel.scrollTop = 0;
}

或者这个:

(this.refs.mainPanel || {}).scrollTop = 0;
ray
2019-06-03