작동하지 라우터 반응하지만, e.preventDefault()
을 작동하지 않습니다 :에서 preventDefault 내가하지</em> 새 탭 또는 기존의 탭에서 열려 할 <em>라우터 반응에서 <code><Link></code> 요소가
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.nativeEvent.stopImmediatePropagation()
을 시도한 결과 <Link>
에서 <a>
태그로 변환하려고했지만 링크를 클릭해도 항상 새 탭에서 열립니다.
dev 도구를 통해 확인했으며 해당 링크에 연결된 유일한 맞춤 이벤트 처리기입니다.
어떤 아이디어일까요? 어떻게 추적 할 수 있습니까?
React는 합성 이벤트를 사용합니다. http://stackoverflow.com/questions/24415631/reactjs-syntheticevent-stoppropagation-only-works-with-react-events – chris
스팬을 사용하지 않는 이유는 어디에서나 연결되기를 원하지 않는다면? – azium
@chris 네, 그렇기 때문에'e.stopPropgataion' 또는'e.nativeEvent.stopImmediatePropagation()'이 효과가 있지만 그렇지 않을 것이라고 생각합니다. @azium 나는 하이퍼 링크의 SEO 혜택을 원한다. span은 그것을 제공하지 않을 것이다. – OrdinaryHuman