Spec-Zone.ru › React 17

Пул событий

Примечание

Эта страница актуальна только для React 16 и более ранних версий, а также для React Native.

React 17 в веб-версии не использует пул событий.

Подробнее об этом изменении в React 17.

Объекты SyntheticEvent находятся в пуле. Это означает, что объект SyntheticEvent будет повторно использован, и все свойства будут сброшены после вызова обработчика события. Например, это не сработает:

function handleChange(e) {
  // This won't work because the event object gets reused.
  setTimeout(() => {
    console.log(e.target.value); // Too late!
  }, 100);
}

Если вам нужно получить доступ к свойствам объекта события после выполнения обработчика события, необходимо вызвать e.persist():

function handleChange(e) {
  // Prevents React from resetting its properties:
  e.persist();

  setTimeout(() => {
    console.log(e.target.value); // Works
  }, 100);
}
Была ли эта страница полезной?

© 2013–present Facebook Inc.
Licensed under the Creative Commons Attribution 4.0 International Public License.
https://17.reactjs.org/docs/legacy-event-pooling.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API