我有Route
可以处理未知的URL,并且Route
可以正常工作并完美呈现PageNotFound
。但是,我有另一种情况,这里有一个Profile
组件,在组件安装时,我必须向服务器发送ajax请求以获取用户的个人资料。
例如,如果URL为http://localhost:3007/profile/theCoder,则ajax请求将发送到服务器http://localhost:8085/api/v1/profiles/theCoder。每个网站都在执行的常规操作,但是我想知道如果ajax返回PageNotFound
时如何显示404页面,即404 status
组件?意味着theCoder
用户不存在吗?
我使用history.push("/some-wrong-route")
处理了该问题,这将呈现PageNotFound
,但浏览器URL也更改为http://localhost:3007/profile/some-wrong-route
我不想要这个,我希望我的应用程序像其他网站一样正确运行。它们保留相同的URL,但呈现PageNotFound。
class Profile extends React.Component {
componentDidMount() {
const responsePromise = fetchUserProfileMinimal(this.props.match.params.id);
responsePromise
.then(({ data }) => {
//do something
})
.catch(err => {
this.props.history.push("/hello");
});
}
render(){
return{
<div>.....</div>
}
}
路线:
<Route component={PageNotFound} />
<Route path="/profile/:id" component={Profile} />