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

现在需要监听路由的变化,根据路由参数 更改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啊...
请教各位有啥好方法吗?

阅读 3.5k
1 个回答

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

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