Javascript 异步锚';在React中的onClick事件
我正在尝试跟踪定位标记(Javascript 异步锚';在React中的onClick事件,javascript,reactjs,asynchronous,anchor,Javascript,Reactjs,Asynchronous,Anchor,我正在尝试跟踪定位标记( 但问题是,由于POST请求是异步的,“href事件”在请求完成之前发生,因此请求被取消。 那么,如何在导航发生之前执行异步事件呢?如果您正在查找跟踪锚,可以使用ping属性执行此操作。请检查 单击> 请注意,并非所有浏览器都支持此功能。如果您正在查找跟踪定位点,可以使用ping属性执行此操作。请检查 单击> 请注意,并非所有浏览器都支持此操作。首先在点击处理程序中接受事件。这将允许您停止导航,直到帖子完成 当您发出请求时,Axios会返回一个承诺。您需要等待该承诺完
但问题是,由于POST
请求是异步的,“href事件”在请求完成之前发生,因此请求被取消。
那么,如何在导航发生之前执行异步事件呢?如果您正在查找跟踪锚,可以使用
ping
属性执行此操作。请检查
单击>
请注意,并非所有浏览器都支持此功能。如果您正在查找跟踪定位点,可以使用
ping
属性执行此操作。请检查
单击>
请注意,并非所有浏览器都支持此操作。首先在点击处理程序中接受事件。这将允许您停止导航,直到帖子完成 当您发出请求时,Axios会返回一个承诺。您需要等待该承诺完成,然后处理导航
(event) => {
// stop the browser from navigating
event.preventDefault();
// save url so that you have the value after the event was disposed
const redirectUrl = event.target.href;
axios.post('http://my-server.com', { value: 'Hello' })
.then(response => {
// handle success
console.log(response);
})
.catch(error => {
// handle error
console.log(error);
})
.then(() => {
// always executed
// navigate logic here
console.log(redirectUrl);
});
}
首先,在点击处理程序中接受一个事件。这将允许您停止导航,直到帖子完成 当您发出请求时,Axios会返回一个承诺。您需要等待该承诺完成,然后处理导航
(event) => {
// stop the browser from navigating
event.preventDefault();
// save url so that you have the value after the event was disposed
const redirectUrl = event.target.href;
axios.post('http://my-server.com', { value: 'Hello' })
.then(response => {
// handle success
console.log(response);
})
.catch(error => {
// handle error
console.log(error);
})
.then(() => {
// always executed
// navigate logic here
console.log(redirectUrl);
});
}
你能发送你的发帖请求,然后让服务器发出重定向吗?不,我更喜欢主持人的href url是“干净的”(原样)你能发送你的发帖请求,然后让服务器发出重定向吗?不,我更喜欢主持人的href url是“干净的”(原样)谢谢您的回答。
event.target
是null
,那么我可以用什么其他方式执行导航?@Scooby Doo React使用可重用的合成事件。如果您在异步调用后返回,这会导致它们为null。我将更新我的答案以解决此问题。您可以使用。最后(…)
而不是最后一个。然后
。谢谢你的回答。事件。目标
为空
,那么我可以用什么其他方式执行导航?@Scooby Doo React使用可重复使用的合成事件。如果你在异步调用后返回,这会导致它们为空。我将更新我的答案以解决此问题。你可以告诉我们e。最后(…)
而不是最后一个。然后
。