错误: ResponderEventPlugin 计算的是触摸事件,而不是触摸,因此合并的多点触摸取消后,trackedTouchCount 会卡住
作者: msageryd创建于 2026年9月10日更新于 2026年9月15日
标签Status: Unconfirmed
**在哪里:**`packages/react-native-renderer/src/legacy-events/ResponderEventPlugin.js`,在任何开始事件上,`trackedTouchCount += 1`,在任何结束或取消事件上,`trackedTouchCount -= 1`(今天主文件中的第 705 到 708 行)。相同的两行出现在 2015 年的 v0.14.0 版本以及之后的每个版本中,并且该文件从未查看过 `changedTouches`:它假定每个事件有一个触摸。在传统渲染器下,其 `receiveTouches` 会为每个变化的触摸发送一个 JS 事件。在 Fabric 中,这不再成立:`RCTSurfaceTouchHandler._dispatchActiveTouches` 会为每个目标视图以及其中的每个变化的触摸发送一个事件,因此在一个视图上合并的提升或取消两个触摸会作为一个事件传递给此插件。从这个意义上讲,这是一个新架构在调度协议中而不是在本文中所引起的回退,但本文中保存了计数器。
内容来源: facebook/react