В моем компоненте реагирования есть поле ввода, в котором onChange()
вызывает функцию, которую я написал. onKeyDown()
также вызывает эту функцию, но только в ограниченных случаях.
Но мой onChange()
вызывается только один раз в Safari при изменениях ввода, что не обновляет мое поле ввода, как я ожидаю. В Chrome мой onChange()
вызывается каждый раз, когда происходит изменение моего ввода от пользователя, и обновляет поле ввода, как я ожидаю.
Кто-нибудь сталкивался с этим? И нашли решение?
Я пытался заменить onChange()
на onInput()
, но затем прочитал, что реакция onChange()
- это в основном javascript onInput()
.
Обновление: Я обнаружил, что моя проблема в том, что я определяю свой ввод, который я передаю как опору другому компоненту в моей функции рендеринга. Мой onChange()
на этом входе содержит setState()
, который переопределяет мой компонент и (я думаю) отменяет регистрацию моего onChange()
. Но опять же, это происходит только в Safari - отлично работает в Chrome, Firefox и IE.
Update2: Оказывается, это был флаг css webkit, который не был проблемой во всех других браузерах, но был проблемой в сафари. Я сбросил его, и это сработало (на случай, если кто-нибудь еще столкнется с этим в будущем).