Expo SDK 48抽屉导航无法滑动打开问题求助(已导入手势库)
解决方案:Expo SDK 48 抽屉导航滑动失效问题
1. 检查 Reanimated 配置及兼容性
你的react-native-reanimated版本为~2.14.4,需确保Babel配置正确适配:
- 在
babel.config.js中添加Reanimated插件,且必须放在所有插件的最后一位:
module.exports = function(api) { api.cache(true); return { presets: ['babel-preset-expo'], plugins: [ 'react-native-reanimated/plugin', ], }; };
2. 确认 Gesture Handler 导入顺序
确保import 'react-native-gesture-handler'是App入口文件的第一行导入,不能放在其他导入之后:
// 正确示例 import 'react-native-gesture-handler'; import React from 'react'; import { NavigationContainer } from '@react-navigation/native'; // ...其他导入内容
3. 升级导航依赖至兼容版本
当前@react-navigation/drawer版本^6.6.3可升级到与SDK48适配的稳定版:
npx expo install @react-navigation/drawer@^6.6.6
4. 显式开启抽屉手势配置
检查Drawer Navigator的gestureEnabled属性是否被禁用,显式设置为true:
import { createDrawerNavigator } from '@react-navigation/drawer'; const Drawer = createDrawerNavigator(); function MyDrawer() { return ( <Drawer.Navigator screenOptions={{ gestureEnabled: true, drawerType: 'front', }} > {/* 你的屏幕组件 */} </Drawer.Navigator> ); }
5. 清除缓存并重启项目
缓存异常可能导致手势失效,执行以下操作:
- 清除Expo缓存:
npx expo start --clear - 关闭Metro服务器后重新启动项目
- iOS模拟器可重置内容,Android端清除应用缓存
内容的提问来源于stack exchange,提问作者Onoshe
相关产品推荐
相关产品推荐

