Пул событий
Примечание
Эта страница актуальна только для 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