Почему обработчик событий React не вызывается на dispatchEvent?
Рассмотрим следующий элемент ввода в компоненте React:
<input onChange={() => console.log('onChange')} ... />
При тестировании компонента React я эмулирую изменение пользователем входного значения:
input.value = newValue;
TestUtils.Simulate.change(input);
Это вызывает'onChange'
быть зарегистрирован, как и ожидалось.
Тем не менее, когда'change'
событие отправляется напрямую (я использую jsdom):
input.value = newValue;
input.dispatchEvent(new Event('change'));
onChange
обработчик не вызывается.
Зачем?
Моя мотивация для использованияdispatchEvent
скорее, чемTestUtils.Simulate
это потому чтоTestUtils.Simulate
не поддерживает всплытие событий, и поведение моего компонента зависит от этого. Интересно, есть ли способ проверить события безTestUtils.Simulate
?