Reactjs路由器-this.props.history.push未呈现来自同一路径的URL查询
我有一个使用history.push导航URL的组件。问题是其中一个URL路径依赖URL中的搜索参数来呈现组件的某些部分。当用户最初导航到url时,它可以正常工作,但是当用户在该路径内更新url时,它就不工作了。下面是一个例子: App.js 作业的url将包含作业ID,用于从后端检索数据-ex:/jobs?ID=6583ghawo90。使用该id,我在Jobs组件的componentDidMount内发出get请求以填充页面。在Jobs组件中,用户可以导航到一个新作业,该作业通过以下.props.history.push`/Jobs?id=${newjob.id}`更新url。问题是,当用户导航到更新的URL时,组件不会调用componentDidMount,因此不会请求新数据。我可以通过手动调用this.componentDidMount来修复此问题,但如果用户在浏览器中单击“后退”按钮,则此操作无效 我能做些什么来解决这个问题吗?您不应该使用componentDidMount,但是: 如果您处于开发过程的开始阶段,我建议您使用钩子Reactjs路由器-this.props.history.push未呈现来自同一路径的URL查询,reactjs,react-router,Reactjs,React Router,我有一个使用history.push导航URL的组件。问题是其中一个URL路径依赖URL中的搜索参数来呈现组件的某些部分。当用户最初导航到url时,它可以正常工作,但是当用户在该路径内更新url时,它就不工作了。下面是一个例子: App.js 作业的url将包含作业ID,用于从后端检索数据-ex:/jobs?ID=6583ghawo90。使用该id,我在Jobs组件的componentDidMount内发出get请求以填充页面。在Jobs组件中,用户可以导航到一个新作业,该作业通过以下.prop
<Router>
<Route path="/jobs" component={Jobs} />
</Router>
componentDidUpdate(prevProps) {
// compare previous jobId and current jobId
// refetch data if needed
}