考虑一个阵营组件的以下输入元件:为什么在dispatchEvent上不调用React事件处理程序?
<input onChange={() => console.log('onChange')} ... />
虽然测试阵营组分,我模拟用户改变输入值:
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
事件?
谢谢,这个工作为了我! – belek
你是我的救星! – shlensky