我從陣營路由器一個<Link>
元素,我不想在新標籤或現有標籤頁中打開,但e.preventDefault()
不工作:的preventDefault在鏈接陣營路由器不能正常工作
constructor(props) {
super(props);
this.loadLink = this.loadLink.bind(this);
}
loadLink(e) {
e.preventDefault();
const id = null || e.target.id;
this.props.onLink(id);
}
render() {
return (
<Link id="my-id" ref="my-id" onClick={this.loadLink} to="/some-url">Some link</Link>
);
}
我試過e.stopPropagation()
和e.nativeEvent.stopImmediatePropagation()
,試圖將它從<Link>
轉換爲常規<a>
標籤,但無論點擊什麼鏈接,都會在新標籤頁中打開。
我已經通過開發工具進行了檢查,並且它是連接到該鏈接的唯一自定義事件處理程序。
任何想法這可能是什麼或如何追蹤?
React使用合成事件。 http://stackoverflow.com/questions/24415631/reactjs-syntheticevent-stoppropagation-only-works-with-react-events – chris
如果你不希望它連接到任何地方,爲什麼不使用跨度? – azium
@chris是的,這就是爲什麼我認爲'e.stopPropgataion'或'e.nativeEvent.stopImmediatePropagation()'可能工作,但他們不。 @azium我想要一個超鏈接的SEO優勢,跨度不會提供。 – OrdinaryHuman