现在需要监听路由的变化,根据路由参数 更改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啊...
请教各位有啥好方法吗?
已解决
在setState 之前进行判断,防止死循环即可