const dropEvent = createEvent.drop(uploadArea);
Object.defineProperty(dropEvent, 'dataTransfer', {
value: {
files: [testFile],
},
});
// 在upload上触发名称为drop的dropEvent事件
fireEvent(uploadArea, dropEvent)
expect(dragProps.beforeUpload).toBeCalled();
await waitFor(() => {
expect(wrapper.queryByText('drag.png')).toBeInTheDocument();
});
老师我不太明白这里的逻辑。。。
我理解是说,比如我在html中new Event(‘click’)和源生HTML中的事件重名了,我的Dom元素上本来还监听一个原本的click事件。当我在HTML调用dispatchEvent时,同时会触发源生事件也会触发自定义的事件。
然后当我调用dispatchEvent触发两个同名事件传入的是我自定义事件的参数,而当我点击时,同时也会触发click事件。但是此时传入的参数是正常点击的参数对吗。
请问下老师我能这样理解吗,在js中事件的触发仅仅针对名称,如果我定义的自定义事件名称和源生重复了比如click,当我点击click时,js只会找到名称去触发。同时会触发两个click事件,但是此时它传入的事件对象是正常的event。
而当我调用dispathEvent触发时,两次也都会触发。但是参数就是我自己定义的自定义事件的Event了。老师我这样理解正确吗,稍微有点绕。
就是说JS中事件是根据名称来触发的,实质上不区分什么源生自定义。只区分触发的方式