如何监听react的路由变化,做出相应操作

发布于 2022-09-11 22:01:13 字数 725 浏览 22 评论 0

现在需要监听路由的变化,根据路由参数 更改state,
当前代码如下

 static propTypes = {
    match: PropTypes.object.isRequired,
    location: PropTypes.object.isRequired,
    history: PropTypes.object.isRequired
  }

  componentDidUpdate () {
    let path = this.props.location.pathname
    if (/\/tab\/home/i.test(path)) {
      this.setState({
        tab: 0
      })
    } else if (/\/tab\/goods/i.test(path)){
      this.setState({
        tab: 1
      })
    } else if (/\/tab\/cart/i.test(path)){
      this.setState({
        tab: 2
      })
    } else if (/\/tab\/mine/i.test(path)){
      this.setState({
        tab: 3
      })
    }
  }
  

在componentDidUpdate 中可以监测到当前url 但是 不能改state啊...
请教各位有啥好方法吗?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

心的憧憬 2022-09-18 22:01:13

已解决
在setState 之前进行判断,防止死循环即可

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文