javascript - 如何将“原始”DOM 事件转换为 React SyntheticEvent?
问题描述
我使用两个库,一个发出“原始”DOM 事件 (lib.dom.d.ts) 的库,另一个使用React.SyntheticEvents
.
将原始事件干净地转换为 SyntheticEvent的最佳方法是什么?
解决方案
这不是一个直接的答案,但评论太长了。
我认为尝试将 DOM 事件包装/转换为React.SyntheticEvent
. 而且我看不到有使用非 React 渲染但使用 React 响应事件的用户案例。也许您需要考虑选择另一个消费库。简单地说,没有直接的方法SyntheticEvent
从 DOM 事件中构造一个。
来自https://reactjs.org/docs/events.html SyntheticEvent
是包装基本 DOM 事件的高级 API。用一些逻辑包装基本 DOM 事件的目标是让事件在跨浏览器中同样工作。
虽然来自
https://github.com/facebook/react/blob/993ca533b42756811731f6b7791ae06a35ee6b4d /packages/react-dom/src/events/plugins/SelectEventPlugin.js或https://github.com/facebook/react/blob/9198a5cec0936a21a5ba194a22fcbac03eba5d packages/react-dom/src/events/plugins/ChangeEventPlugin.js
,你可以找到一些关于如何构造 aSyntheticEvent
的线索,工作不仅是构造SyntheticEven
,还包括 React 已经完成的以及你的消费库所依赖的其他逻辑。如果你SyntheticEvent
自己构造a,那么你还需要编写符合期望的逻辑。
推荐阅读
- python - Raspberry Pi 上的停车检测和决策?
- mongodb - 从具有大约 50000 条记录的集合中获取记录
- angular - 如何为 Angular 组件单元测试模拟 FormBuilder
- python - 在下载数据时限制 python 进程的带宽使用
- git - .gitk.cache 文件中的作用是什么?.git 文件夹?
- json - FCM Firebase Angular
- javascript - 在组件加载到页面 Reactjs 之前如何更改我的菜单链接
- javascript - 如何将全球风格转移到情感的范围内?
- android - Android : 将 Uri 转换为 Url
- android - 如何从 Android 应用程序在 Chrome 浏览器中上传 pdf 文件