Обработчик onClick не работает в IE11 - PullRequest
0 голосов
/ 11 июня 2018

Я создаю свой первый проект GatsbyJS, и у меня есть простая страница, на которой содержимое отображается на основе активной кнопки («currentPage»), по которой щелкнул пользователь.Активная кнопка сохраняется в состоянии компонента.

Страница работает должным образом во всех основных браузерах, кроме IE11.Мне интересно, нужен ли мне полифилл (или что-то еще), чтобы заставить это работать?

Спасибо за любую информацию!

// handler in parent component
handlePageChange (e) {
  e.preventDefault()
  this.setState({
    currentPage: e.target.value
  })
}

// render of parent component
render () {
  return (
    <div className={styles.clientsRightsContainer}>
      <Buttons
        a={{ label: 'Label A', onClick: this.handlePageChange, value: 'pageA' }}
        b={{ label: 'Label B', onClick: this.handlePageChange, value: 'pageB' }}
    />
}

...

// handler gets passed down to child component Buttons via `a` and `b` props
const Buttons = ({ a, b }) => (
  <div className={styles.container}>
    <button onClick={a.onClick} value={a.value}>{a.label}</button>
    <button onClick={a.onClick} value={b.value}>{b.label}</button>
  </div>
)
export default Buttons

1 Ответ

0 голосов
/ 11 июня 2018

Вы, скорее всего, пропускаете полифилы - как предложено здесь https://github.com/facebook/react/issues/8877.

Установите его через это:

npm install --save-dev babel-polyfill

Из документов:

Есливы используете синтаксис импорта ES6 в точке входа вашего приложения, вместо этого вы должны импортировать полизаполнение в верхней части точки входа, чтобы убедиться, что полифила загружаются первыми: import "babel-polyfill";

Для документации и использования,увидеть это https://babeljs.io/docs/usage/polyfill/.

...