SuperAPI AI 工具集

gesture-handler-3-migration

编程与开发

查看项目

更新于 10-16 01:27

技能介绍

用途:把使用 React Native Gesture Handler 2 builder API 的 React Native 组件迁移到 Gesture Handler 3,更新相关类型与组件。

主要能力:

  • 识别 react-native-gesture-handler 的导入,将 Gesture.X() 替换为 useXGesture() Hook,并把 builder 方法链改为配置对象;
  • 更新回调名:onStart→onActivate、onEnd→onDeactivate、onTouchesCancelled→onTouchesCancel;onDeactivate/onFinalize 不再接收 success 布尔参数,改用事件对象的 canceled(逻辑相反);onChange 移除,改到 onUpdate 的事件中;
  • 迁移手势关系:Gesture.Race→useCompetingGestures、Gesture.Simultaneous→useSimultaneousGestures、Gesture.Exclusive→useExclusiveGestures;跨组件属性 simultaneousWithExternalGesture→simultaneousWith、requireExternalGestureToFail→requireToFail、blocksExternalGesture→block;
  • StateManager 改为全局 GestureStateManager,提供 activate/deactivate/fail(handlerTag),移除 begin();
  • SVG 等依赖视图层级的场景改用 InterceptingGestureDetector 与 VirtualGestureDetector(后者必须是前者后代);
  • 旧组件在无法隔离迁移时改用 Legacy 前缀导入;按钮与 touchable 统一迁移到 Touchable 组件,并提供对应属性映射。

使用方式:按上述规则逐项替换导入、调用、回调与关系定义;注意 Hooks 规则,同一手势实例不要跨多个 GestureDetector 复用。

限制:ForceTouch 在 Hook API 中无对应项;纯 NativeButton 已移除;ReanimatedSwipeable 的 dragOffsetFromRight 现接受负值;部分 TouchableHighlight 迁移只能近似,视觉反馈可能不同。Hook API 默认启用 Reanimated 集成,回调在 UI 线程执行,runOnJS 可切换线程。