React中阻止按钮点击触发href打开新页面的实现方法
在React开发场景下,要阻止标签包裹Button组件时触发href的跳转,有以下几种实用方案:
给Button绑定点击事件,阻止事件冒泡与默认行为
点击Button时,通过阻止事件向上冒泡到标签,同时阻止浏览器的默认跳转行为:<div> <a href="http://web address/php/navpoi1.php" target="_blank" rel="noopener noreferrer"> <Button onClick={(e) => { e.stopPropagation(); e.preventDefault(); // 可在此添加自定义点击逻辑 }}>Nav to POI1</Button> </a> </div>给标签绑定onClick阻止默认行为
直接在标签的点击事件中阻止默认跳转,无论点击区域内的哪个元素都不会触发跳转:<div> <a href="http://web address/php/navpoi1.php" target="_blank" rel="noopener noreferrer" onClick={(e) => e.preventDefault()} > <Button>Nav to POI1</Button> </a> </div>移除标签,用Button单独处理交互逻辑
如果不需要标签的语义,直接去掉,将原本的跳转逻辑放到Button的点击事件中自主控制:<div> <Button onClick={() => { // 自定义点击逻辑示例: // window.open('http://web address/php/navpoi1.php', '_blank', 'noopener noreferrer'); }}>Nav to POI1</Button> </div>
内容的提问来源于stack exchange,提问作者Kurt Ingleson
相关产品推荐
相关产品推荐

