Я прекрасно понимаю, почему смешивать эти две разные системы событий не только плохо, но и испытывать нежелательное поведение из первых рук, но, похоже, другого пути нет.Я должен прикрепить onKeyPress
ко всему документу, а также указать onKeyPress
для всех React
входных данных в документе.Структура будет выглядеть следующим образом:
<html>
<body>
<div id="root">
<App>
<input onKeyPress={this.keyPress}/>
</App>
</div>
</body>
</html>
Во всем документе будет addRventListener
:
componentDidMount() {
document.addEventListener("keydown", this.handleEnterKey);
}
Обсуждается множество блогов о том, почему React
обработчики событийвсегда будет выполняться после собственных обработчиков перехвата, но ни один из них, казалось, не дал решения для случая, когда другой возможности не существует.