gpt4 book ai didi

javascript - 在reactJS方法中取消注册e.preventDefault

转载 作者:行者123 更新时间:2023-12-03 03:55:25 27 4
gpt4 key购买 nike

我遇到的情况是,我需要在单击链接时触发谷歌分析事件。我为此目的编写了一个处理程序:

handleClick(e){
e.preventDefault();
// --------------------------
GA code ...
// --------------------------
// now how can I re-eanble the link
// e.target.click() and similar methods are not working for me

}

但是在触发 GA 事件后,我找不到一种方法来解除从链接(使用 React 的“link”组件创建)中的 PreventDefault 的绑定(bind)。

任何指示都会有帮助。

最佳答案

您可以尝试更新状态。下面的示例我尝试有条件地附加事件处理程序。我在第一次调用后删除了附加到按钮 onClick 事件的处理程序。

我还尝试过有条件地执行链接的 e.preventDefault

https://codesandbox.io/s/MQnoVJKJR

import React from 'react';

export default class Hello extends React.Component {
state = {
btnClicked: false,
linkClicked: false,
};
constructor() {
super();
}
handleClick(e) {
e.preventDefault();
alert('button clicked');
this.setState({
btnClicked: true,
});
}
handleLinkClick(e) {
if (!this.state.linkClicked) {
e.preventDefault();
}
this.setState({
linkClicked: true,
});
}
render() {
return (
<div>
<div>
<button
onClick={!this.state.btnClicked && this.handleClick.bind(this)}> // Binding onClick event to state change

Click Me
</button>
</div>
<a
href="https://www.google.co.in"
target="_blank"
onClick={this.handleLinkClick.bind(this)}
>
Go to Google.com
</a>
</div>
);
}
}

关于javascript - 在reactJS方法中取消注册e.preventDefault,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44977268/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com