路由切换后怎样可以使得组件能够重新调用componentDidMount?
来源:10-2 获取商户信息
qq_未完待续_15
2017-07-04
<Route path='/detail/:id' component={Detail}/>
componentDidMount() {
// 获取商户信息
this.getInfo()
}
getInfo() {
const id = this.props.id
const result = getInfoData(id)
result.then(res => {
return res.json()
}).then(json => {
this.setState({
info: json
})
}).catch(ex => {
if (__DEV__) {
console.error('详情页,获取商户信息出错')
}
})
}componentDidMount 是获取 ajax 数据用的,并且只触发一次。那请问课程里面的详情页这一点,路由上是 detail/:id ,那在 id 发生变化时,怎么重新触发 componentDidMount ,使得数据能够重新被获取到呢?
另外,老师我现在使用的是 react-router-dom 4.0 版本的,是不是 react-router 3.0会自动刷新?
写回答
1回答
-
你的问题跟 4.0 3.0 都没有关系,React 机制决定的。
DidMount 就是只在组件渲染之后被触发,路由的 id 变化后不会触发,而是会触发 didUpdate。视频中也是用 didUpdate 来做的更新。
012017-07-05
相似问题