Warum wird die Ereignisbehandlungsroutine bei dispatchEvent nicht aufgerufen?
Betrachten Sie das folgende Eingabeelement in einer React-Komponente:
<input onChange={() => console.log('onChange')} ... />
Während ich die React-Komponente teste, emuliere ich den Benutzer, der den Eingabewert ändert:
input.value = newValue;
TestUtils.Simulate.change(input);
Dies bewirkt'onChange'
wird wie erwartet protokolliert.
Wie auch immer, wenn das'change'
Event wird direkt versendet (ich benutze jsdom):
input.value = newValue;
input.dispatchEvent(new Event('change'));
dasonChange
handler wird nicht aufgerufen.
Warum
Meine Motivation, @ zu benutzdispatchEvent
eher, alsTestUtils.Simulate
DennTestUtils.Simulate
unterstützt kein Sprudeln von Ereignissen, und das Verhalten meiner Komponente beruht darauf. Ich frage mich, ob es eine Möglichkeit gibt, Ereignisse ohne @ zu testeTestUtils.Simulate
?