Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 异步锚';在React中的onClick事件_Javascript_Reactjs_Asynchronous_Anchor - Fatal编程技术网

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
。最后(…)
而不是最后一个
。然后