You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

点击按钮打开链接:IconButton嵌套Link无法跳转的正确实现方式

问题根因

你当前写法失效是因为Material UI的Tooltip组件要求直接子元素必须支持透传事件和ref,同时嵌套Link的写法容易和IconButton内置的点击事件逻辑产生冲突。普通Button嵌套能生效是组件内部事件处理逻辑的差异,两种组件更规范的写法都是统一用组件内置的component属性指定渲染为路由Link,不需要额外嵌套。

推荐正确实现

直接给IconButton指定component属性为你使用的路由库的Link组件,把跳转路径放到to属性中即可:

// 首先导入对应路由库的Link,以react-router为例
import { Link } from 'react-router-dom';

<Tooltip title="Open New Ticket">
  <IconButton 
    aria-label="filter list"
    component={Link}
    to="open-ticket"
  >
    <AddTwoToneIcon />
  </IconButton>
</Tooltip>

补充说明

  • 如果需要使用绝对路径跳转,to属性值前加斜杠即可:to="/open-ticket"
  • 该写法同样适用于普通Button组件,比嵌套Link的写法更简洁,也不会出现事件冲突问题

内容的提问来源于stack exchange,提问作者Peter Penzov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 15:15:00