У меня есть функция в настройке моего приложения React как событие onClick, которое отправляет набор данных обратно в API, а затем мне нужно перенаправить его на другой URL-адрес ПОСЛЕ того, как он завершит отправку данных. Раньше я пытался сделать это, просто обернув кнопку тегом привязки и href, но всякий раз, когда пользователь нажимает кнопку, она перенаправляется до завершения события onClick. Я включил функцию ниже. Любые идеи о том, как добавить перенаправление после начальной логики отправки?
Функция
this.submitData = () => {
let temporalDataModel = {
...this.state.dataModel,
SessionId: this.state.customer.SessionId,
customerId: this.state.customer.CustomerId
};
//// This is the logic to send the the data back to my API
let postUrl = "https://myAPI.com/OfferUpdate";
axios
.post(postUrl, temporalDataModel)
.then(response => {
console.info(response);
})
.catch(err => {
console.error(err);
});
console.info("This is your data...sending...NOW", temporalDataModel);
};
@epascarello это все, что нужно, спасибо!



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Ну, на самом деле ваша функция submitData выполняет асинхронный код... Поэтому, если вы хотите дождаться выполнения действия, вам следует перенаправить на другой веб-сайт в результате вашего обещания в then или catch, если возникнет исключение.
Вам нужно переместить свой код публикации в сторону, а затем функционировать, как показано ниже. Поскольку ваш код публикации выходит за пределы функции, которую он выполняет, прежде чем API вернется с результатом.
axios
.post(postUrl, temporalDataModel)
.then(response => {
console.info(response);
console.info("This is your data...sending...NOW", temporalDataModel);
})
.catch(err => {
console.error(err);
});
Таким образом, вы перенаправляете, когда звонок возвращается.... window.location.href = "//example.com"