61
задан 29 February 2012 в 20:51

1 ответ

я думаю, что это могло быть опасно (!), но, кажется, работает во время записи, по крайней мере.

Это - ES6, и Реагируйте, я протестировал и нашел его работающий на ниже браузеров. Одна премия - то, если существует исключение (имел пару во время способа делать это), это переходит к ссылке как нормальное <a> ссылка, но это не будет SPA затем отдел.

Рабочий стол:

  • край Chrome v.76.0.3809.132
  • Safari v.12.1.2
  • Firefox Quantum v.69.0.1
  • 18
  • Край 17
  • Мобильный IE11

/ Планшет:

  • Android v.8 Интернет Samsung
  • Android v.8 Android v.9 Chrome
  • Chrome
  • iOs11.4 Safari
  • iOs12.1 Safari

.

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>  
  }
}
2
ответ дан 31 October 2019 в 16:34

Другие вопросы по тегам:

Похожие вопросы: