首页 > 解决方案 > 如何将“原始”DOM 事件转换为 React SyntheticEvent?

问题描述

我使用两个库,一个发出“原始”DOM 事件 (lib.dom.d.ts) 的库,另一个使用React.SyntheticEvents.

将原始事件干净地转换为 SyntheticEvent的最佳方法是什么?

标签: javascriptreactjstypescript

解决方案


这不是一个直接的答案,但评论太长了。

我认为尝试将 DOM 事件包装/转换为React.SyntheticEvent. 而且我看不到有使用非 React 渲染但使用 React 响应事件的用户案例。也许您需要考虑选择另一个消费库。简单地说,没有直接的方法SyntheticEvent从 DOM 事件中构造一个。

来自https://reactjs.org/docs/events.html SyntheticEvent是包装基本 DOM 事件的高级 API。用一些逻辑包装基本 DOM 事件的目标是让事件在跨浏览器中同样工作。

虽然来自 https://github.com/facebook/react/blob/993ca533b42756811731f6b779​​1ae06a35ee6b4d /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,那么你还需要编写符合期望的逻辑。


推荐阅读