反应路线 url 并查看更改但组件功能仍然有效。为什么?

React route url and view changes but component function still active. Why?

我有一个通过单击按钮触发的事件函数。它的目的是保持 body 位置固定,防止它滚动,直到您再次单击按钮以 close/toggle 关闭它。

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

我是 React 新手,仅供参考

我的代码:

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

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

我正在使用 react-static withRouteData, RouteData, Router,我在这些页面上没有任何问题。但是,在像文章页面这样的页面上,路由不会以相同的方式改变。这就是我看到的问题。

有什么东西可以包裹起来,这样当我点击新页面时它会恢复到默认状态吗?

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

是的,您可以在 componentWillUnmount 生命周期挂钩中调用 bodyRelative 方法来取消设置 class。类似的东西:

componentWillUnmount() {
  this.bodyRelative()
}