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

Next.js嵌套导航冲突问题:点击子元素触发两次跳转求解

解决Next.js中Link与内部元素onClick跳转冲突问题

问题根源是事件冒泡机制:点击h1时,点击事件会向上传递到外层的Link组件,导致先执行h1的router.push('/login'),紧接着Link的跳转逻辑也会触发,最终出现两次跳转的异常。

解决方法很简单,在h1的onClick事件中添加e.stopPropagation()阻止事件冒泡到父级Link:

<Link href="/playing">
  <div className="px-20 w-full">
    <h1 onClick={(e) => {
      e.stopPropagation(); // 阻止事件冒泡到外层Link
      router.push('/login');
    }} className="hover:underline">
      Login
    </h1>
  </div>
</Link>

修改后效果:

  • 点击Login文字时,仅触发/login的跳转,不会触发外层Link的/playing跳转
  • 点击div的其他区域(除h1外),正常触发Link的/playing跳转,完全保留原需求逻辑

内容的提问来源于stack exchange,提问作者Ansh Rathod

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 07:25:17