javascript - 怎么打开链接路由器。材质ui列表项,但不在列表项中的一个按钮上
问题描述
有一个包含一些 ListItem 组件(来自材料 ui)的组件,并且每个 ListItem 都有一个按钮。整个列表项应该是可点击的,并将应用程序路由到某个地方,除了那个按钮,onclick 应该执行一个动作。但是现在,当我单击删除按钮时,它会将应用程序路由到该路径。我希望能够删除该项目(我在父级中的删除方法实际上会打开一个对话框来确认,但我想这无关紧要)。我只是希望它在单击图标时忽略路线。我该如何处理这种情况?这是代码:
<ListItem
component={Link}
to={`item/${props.id}`}
alignItems="flex-start"
>
<ListItemAvatar>
<Avatar />
</ListItemAvatar>
<ListItemText
disableTypography={false}
primary={props.b}
secondary={props.c}
className={classes.body}
/>
<IconButton
onClick={props.deleteItem}
aria-label="delete"
className={classes.button}
>
<DeleteIcon />
</IconButton>
</ListItem>
解决方案
deleteItem 函数应该将事件作为参数。并调用 event.stopPropagation();
更新:
event.preventDefault();
推荐阅读
- c - 指针转换的奇怪结果
- python - PySpark Streaming,写入时产生错误
- php - 如何在保持日期排序的同时按一个值对对象数组进行排序
- autodesk-forge - 尝试使用 Forge BIM 360 API 将公司 ID 分配给帐户成员时出错
- google-sheets - 将 100k 行粘贴到 Google 表格中
- python-3.x - 使用 Python 在 Excel 中与多列进行多对一映射
- sql - 计算单个查询中表中所有列的不同值
- swift - 如何在 MacOS Mojave 上使用 Swift 5.3 和 XCode 11.7?
- regex-group - 是否有不公开捕获组的 REGEX 函数的替代方法?
- c# - Xamarin Forms 淡出动画不起作用