gpt4 book ai didi

javascript - 单击单元格内的图标时,Ag-Grid 防止 onRowClicked 事件

转载 作者:行者123 更新时间:2023-12-02 19:13:26 26 4
gpt4 key购买 nike

我有一个单元格渲染器,它返回一行中的名称属性和对象:

const nameRenderer = ({ value, data }) => {
const { id: queueId } = data;
return (
<Box>
<div className="row-hidden-menu">
<IconButton
icon="menu"
onClick={({ event }) => {
event.preventDefault();
event.stopPropagation();
onMenuClick();
}}
/>
</div>
</Box>
);
};

enter image description here

我遇到的问题是我有一个 onRowClick 函数,但我不希望在单击 nameRenderer 中的图标时调用该函数。现在,当菜单打开时,onRowClicked 事件导航到新页面。

最佳答案

参见 this answer以获得更深入的解释,但要点是您从 onClick 回调中收到的 event 是 React 的合成事件,它是 native 事件的包装器。从合成事件调用 stopPropagation() 不会阻止真实事件冒泡,这是 React 框架长期以来的一个怪癖。

解决方案:改为将您的 onClick 事件处理程序附加到真正的 DOM 元素。

function ButtonCellRenderer() {
return (
<button
ref={(ref) => {
if (!ref) return;

ref.onclick = (e) => {
console.log("native event handler");
e.stopPropagation(); // this works
// put your logic here instead because e.stopPropagation() will
// stop React's synthetic event
};
}}
onClick={(e) => {
e.stopPropagation(); // this doesn't work
}}
>
Click me
</button>
);
}

现场演示

Edit 63964553/ag-grid-prevent-onrowclicked-event-when-clicking-icon-inside-cell

关于javascript - 单击单元格内的图标时,Ag-Grid 防止 onRowClicked 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63964553/

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