首页 > 解决方案 > 反应路由 url 并查看更改,但组件功能仍处于活动状态。为什么?

问题描述

我有一个由单击按钮触发的事件函数。其目的是保持身体位置固定,使其不会滚动,直到您再次单击按钮以关闭/切换它。

它工作正常,但是当我单击另一个页面而不将其关闭时,它仍然处于活动状态。这意味着新页面将不会滚动,因为正文位置是固定的。

我是 React 的新手,仅供参考

我的代码:

bodyFixed(event) {
  document.body.classList.add('body-fixed');
}

bodyRelative(e) {
  document.body.classList.remove('body-fixed');
}

我正在使用 react-staticwithRouteData, RouteData, Router并且我在这些页面上没有问题。但是,在诸如文章页面之类的页面上,路线不会以相同的方式更改。这就是我看到问题的地方。

有什么我可以用它包装的,这样当我点击一个新页面时它会恢复默认值吗?

请先询问您是否需要更多信息,我很乐意添加更多信息。

标签: reactjsreact-nativereact-routerreact-static

解决方案


是的,您可以在生命周期挂钩中调用bodyRelative方法来取消设置类。componentWillUnmount沿着这些思路:

componentWillUnmount() {
  this.bodyRelative()
}

推荐阅读