я думаю, что это могло быть опасно (!), но, кажется, работает во время записи, по крайней мере.
Это - ES6, и Реагируйте, я протестировал и нашел его работающий на ниже браузеров. Одна премия - то, если существует исключение (имел пару во время способа делать это), это переходит к ссылке как нормальное <a>
ссылка, но это не будет SPA затем отдел.
Рабочий стол:
/ Планшет:
.
import 'mdn-polyfills/MouseEvent'; // for IE11
import React, { Component } from 'react';
import { Link } from 'react-router-dom';
class ProductListLink extends Component {
constructor(props) {
super(props);
this.realClick = true;
this.onProductClick = this.onProductClick.bind(this);
}
onProductClick = (e) => {
const { target, nativeEvent } = e;
const clonedNativeEvent = new MouseEvent('click', nativeEvent);
if (!this.realClick) {
this.realClick = true;
return;
}
e.preventDefault();
e.stopPropagation();
// @todo what you want before the link is acted on here
this.realClick = false;
target.dispatchEvent(clonedNativeEvent);
};
render() {
<Link
onClick={(e => this.onProductClick(e))}
>
Lorem
</Link>
}
}