路由切换后怎样可以使得组件能够重新调用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
相似问题