【发布时间】:2021-08-02 15:57:27
【问题描述】:
我有一个表格,其中每行都有一个按钮。这个按钮显示一个onClick event,它在下面添加了两个按钮元素。
会发生什么:当我点击一个按钮时,onClick event 会在每一行中完成,而不仅仅是我点击的那一行。
我期望发生的事情:当点击 one 行中的按钮时,该事件在该单行上完成。
Note:我正在使用材料表,在其中一列中我有一个render method,按钮的结构如下:
<Button
disableRipple
className={(classes.buttonState, classes.textButtonStatePending)}
onMouseEnter={handleHover} //makes the buttons appear
onMouseLeave={handleHoverAway} //makes the buttons dissapear
onClick={handleHover}
onChange={handleHover}
>
Pending
</Button>
这是我将鼠标悬停在按钮上的事件,它必须显示我的组件:
const handleHover = (): void => {
setShowButtonGroup(true);
};
【问题讨论】:
-
你能把
event.stopPropagation();放到你的handleHover函数中 -
您需要为每一行使用一个唯一标识符,例如
id,这样您就可以将其传递给您的onClick处理程序并知道点击了哪一行 -
@AmruthLS 是从 REact 导入的方法吗?看看我的功能: const handleHover = (): void => { setShowButtonGroup(true);停止传播(); };
-
不需要
handleHover(event){ event.stopPropagation(); }你的函数应该是这样的 -
@WillJenkins 你可能是对的......你能给我一个关于如何在代码中做到这一点的例子吗?
标签: reactjs typescript events render material-table