You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Expo React Native应用react-native-gesture-handler依赖冲突问题求助

解决Expo React Native中react-native-wagmi-charts的手势处理依赖冲突问题

问题根源

react-native-wagmi-charts依赖react-native-gesture-handler,但Expo项目默认已集成该库,手动安装会引发版本冲突,导致重复注册视图错误;不手动安装则会因依赖解析逻辑问题触发模块找不到的报错。


解决方案步骤

1. 移除手动安装的react-native-gesture-handler

如果之前手动安装过该库,先彻底卸载:

npm uninstall react-native-gesture-handler
# 使用yarn的话执行:
yarn remove react-native-gesture-handler

2. 清理缓存并重新构建项目

Expo自带的react-native-gesture-handler无需额外安装,执行以下命令清理缓存、重置依赖后重启项目:

# 清除npm/yarn缓存
npm cache clean --force
# 或
yarn cache clean

# 删除依赖目录与锁文件
rm -rf node_modules package-lock.json yarn.lock
# Windows用户执行:
rmdir /s /q node_modules
del package-lock.json yarn.lock

# 重新安装依赖
npm install
# 或
yarn install

# 清除Expo缓存并启动项目
npx expo start --clear

3. 验证依赖配置(可选)

检查项目根目录的package.json,确保没有手动添加的react-native-gesture-handler依赖项,若有则直接删除。

4. 强制解析Expo内置模块(补全方案)

若执行上述步骤后仍出现模块找不到的错误,可在项目根目录创建metro.config.js,添加配置确保Expo内置的react-native-gesture-handler被正确识别:

const { getDefaultConfig } = require('expo/metro-config');

const config = getDefaultConfig(__dirname);

config.resolver.resolveRequest = (context, moduleName, platform) => {
  if (moduleName === 'react-native-gesture-handler') {
    return {
      filePath: require.resolve('react-native-gesture-handler'),
      type: 'sourceFile',
    };
  }
  return context.resolveRequest(context, moduleName, platform);
};

module.exports = config;

额外注意事项

  • 不要手动执行react-native link react-native-gesture-handler,Expo会自动处理原生模块的链接流程。
  • 确认你的Expo SDK版本与react-native-wagmi-charts兼容,建议查看该库的官方文档确认版本支持范围。

内容的提问来源于stack exchange,提问作者Tui

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 21:37:18