我正在通过从 react-router-dom v4 重定向重新加载组件,当组件第一次加载时,API 调用发生在 ComponentDidMount 中。但是当重定向触发组件重新加载时,此方法不会运行。
我有组件 TopicList ,它由路径 /topic 使用 react-router-dom 中的 Route 显示
PostTopic 是在 TopicList 中呈现的模态。在 PostTopic 内部,我向状态添加了一个名为重定向的属性,并使用它来将重定向组件呈现为 =“/topic”,我在将一些数据发布到 api 后重定向。
在通过重定向重新加载的 topicList 中,componentDidMount() 未运行,因此不会发生用于获取新发布数据的 api 调用。
在通过 Redirect from react-router 重新加载同一路由后,从 api 调用重新获取数据的最佳方法是什么。
class PostTopic extends Component
state = {
redirect: false
}
handleSubmit = (e) => {
e.preventDefault();
const { body, subject } = this.state;
api.postTopic(this.props.store.token,subject,body)
.then( response => {
this.setState({redirect:true})
})
.catch( error => {
this.setState({error});
});
}
renderRedirect = () => {
if(this.state.redirect){
return <Redirect to={this.props.currentPath}/>
}
}
render(){
return(
...
...
...
{this.renderRedirect()}
}
}