Javascript 使用addEventListener阻塞onClick处理程序
我有一个带有Javascript 使用addEventListener阻塞onClick处理程序,javascript,reactjs,Javascript,Reactjs,我有一个带有onClick事件的按钮: <button id="my-button" onClick={myMethod}> My button </button> 是否可以在侦听器中添加一些方法,从而停止调用myMethod?将React事件处理和原始DOM事件处理结合起来通常表明存在更大的设计问题。一方与另一方的冲突更加严重。:-) 话虽如此,React的事件处理程序使用委托,因此标准的e.stopPropagation应该这样做: const listene
onClick
事件的按钮:
<button id="my-button" onClick={myMethod}>
My button
</button>
是否可以在
侦听器
中添加一些方法,从而停止调用myMethod
?将React事件处理和原始DOM事件处理结合起来通常表明存在更大的设计问题。一方与另一方的冲突更加严重。:-)
话虽如此,React的事件处理程序使用委托,因此标准的e.stopPropagation
应该这样做:
const listener = (e) => {
e.stopPropagation();
console.log('Hello, world!');
};
例如:
函数myMethod(){
console.log(“myMethod”);
}
常量示例=()=>
我的纽扣
;
ReactDOM.render(
,
document.getElementById(“根”)
);
常量侦听器=(e)=>{
//在此处(或其他地方)执行某些操作以防止调用“myMethod”
e、 停止传播();
log('Hello,world!');
}
const options={capture:true,once:true};
document.getElementById('my-button'))
.addEventListener(“单击”,侦听器,选项)代码>
您是否尝试过event.preventDefault()代码>?是myMethod
您的代码吗?您不应该混合使用react和普通js处理程序。这只会造成混乱。@AbSin-@AbSin CauseonClick
是React
s道具的一部分,它不会反映到DOM中。@jonaswillms-我假设(很可能是错误的:-)OP在发生这种情况时正在重新连接事件侦听器。但提出的观点很好,回答得很好。幸运的是,我在某种程度上附加了侦听器,它总是在那里。不知道哪个事件将被视为top
事件-在onClick
属性中的事件,或者添加到AddEventListener
中的事件。它澄清了一些事情+本周日下午的一些更多的反应知识:)谢谢!
const listener = (e) => {
e.stopPropagation();
console.log('Hello, world!');
};