У меня есть Route
для обработки неизвестных URL, и Route
отлично работает и прекрасно отображает PageNotFound
. Но у меня другой сценарий, здесь у меня есть компонент Profile
, где при монтировании компонента я должен отправить ajax-запрос на сервер для получения профиля пользователя.
Например, если URL-адрес http://localhost:3007/profile/theCoder, ajax-запрос будет отправлен на сервер http://localhost:8085/api/v1/profiles/theCoder. Обычные вещи, которые делает каждый веб-сайт, но я хочу знать, как показать страницу 404, т.е. PageNotFound
компонент, если ajax возвращает 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} />