首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >点击卡片组件中的图标按钮,不点击整张卡片

点击卡片组件中的图标按钮,不点击整张卡片
EN

Stack Overflow用户
提问于 2020-09-05 10:50:24
回答 2查看 444关注 0票数 0

我有一个可点击的卡片组件,它在卡片中包含一个图标按钮,我希望能够点击图标按钮,而不是用它点击整个卡片。

目前,当单击图标按钮时,涟漪效果会在整个卡片上运行,但我希望能够只单击图标按钮而看不到涟漪效果,但当我单击主卡时,我看到了涟漪效果。

我添加了一个codesandbox链接,其中包含我使用的代码:https://codesandbox.io/s/material-demo-forked-lbnbh?file=/demo.js

代码语言:javascript
复制
<Card className={classes.root}>
  <CardActionArea>
    <CardMedia className={classes.media} title="Con" />
    <CardContent>
      <IconButton aria-label="add to favorites">
        <AddBoxIcon style={{ fontSize: 50 }} />
      </IconButton>
    </CardContent>
  </CardActionArea>
</Card>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-09-05 12:40:46

如果您希望激发子组件的单击事件,并且不将其传播到父组件,请使用e.stopPropagation()

此外,如果要将传播应用于涟漪效果,请确保将处理程序附加到onMouseDown事件,而不是onClickonClick事件在触发涟漪效果后触发,因此它不起作用。

代码语言:javascript
复制
<IconButton>
  <AddBoxIcon onMouseDown={e => e.stopPropagation()} />
</IconButton>

实时演示

票数 1
EN

Stack Overflow用户

发布于 2020-09-05 11:23:56

你需要把onClick放在IconButton上。

代码语言:javascript
复制
const onIconClick =e=>{
console.log("In icon click")
}
代码语言:javascript
复制
<IconButton aria-label="add to favorites" onClick={onIconClick}>
        <AddBoxIcon style={{ fontSize: 50 }} />
      </IconButton>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63749994

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档