попробуйте ниже и дайте мне знать, если это работает для вас, измените сторону сервера следующим образом:
public static async post(path, body) {
return window.fetch(path, {
body: JSON.stringify(body),
cache: "no-cache",
method: "post"
})
.then(data => {
// call successfull
})
.catch(data => {
// server side redirect below:
if (data.status === 401) {
data.redirect(url, 401)
}
else {
return data.json();
}
});
}
А затем на стороне клиента сделайте следующее:
private send() {
const { history } = this.props
HttpService.post(PATH.sendTicket, this.state.ticketModel).then(data => {
if (data.ErrorCode === 0) {
this.setState({
sentSuccessfull: true
});
}
}).catch(err => {
hirstory.push('/your-route-here')
})
}
В качестве альтернативыесли вы не используете реагирующий маршрутизатор, вместо использования history.push вы можете использовать
location.href = '/your-route-here'
или что-то в этом роде, однако использование метода location.href очистит состояние вашего приложения, фактически ведя себя так, как будто выобновил страницу.
Дайте мне знать, если это поможет
Ллойд