[RreactNative]DrawerLayoutAndroid在使用堆栈导航器后表现异常



我正在使用react native制作一个android应用程序。

我通过DrawerLayoutAndroid在主页上创建了一个抽屉,并使用useRef将其应用于ref={}

我用ref.current.openDrawer((打开抽屉在某些按钮上。

第一次运行应用程序时效果良好,但当您使用堆栈导航移动屏幕并按下按钮后返回主页面时,效果不佳。

屏幕变暗了,抽屉也没有出现。

使用滑动手势仍然可以正常工作。

你们中有人和我遇到同样的问题吗?

为了简化我的代码,它看起来像这样:

const Main = ({navigation}) => {
const drawer = useRef(null);
return(
<DrawerLayoutAndroid
ref={drawer}
drawerWidth={300}
drawerPosition={'left'}
renderNavigationView={() => <MainDrawer />}
>
<TouchableOpacity onPress={() => drawer.current.openDrawer()} />
</DrawerLayoutAndroid>
);
}

版本信息如下。

{
"name": "App",
"version": "0.0.1",
"private": true,
"scripts": {
"android": "react-native run-android",
"ios": "react-native run-ios",
"start": "react-native start",
"test": "jest",
"lint": "eslint ."
},
"dependencies": {
"@babel/plugin-syntax-flow": "^7.18.6",
"@bam.tech/react-native-make": "^3.0.3",
"@flarelane/react-native-sdk": "^1.0.11",
"@fortawesome/fontawesome-svg-core": "^6.1.2",
"@fortawesome/free-regular-svg-icons": "^6.1.1",
"@fortawesome/free-solid-svg-icons": "^6.1.1",
"@fortawesome/react-native-fontawesome": "^0.2.7",
"@react-native-community/async-storage": "^1.12.1",
"@react-native-community/cameraroll": "^4.1.2",
"@react-native-community/checkbox": "^0.5.12",
"@react-native-community/geolocation": "^2.1.0",
"@react-native-community/netinfo": "^9.3.0",
"@react-native-community/slider": "^4.2.4",
"@react-navigation/native": "^6.0.10",
"@react-navigation/native-stack": "^6.6.2",
"dependencies": "^0.0.1",
"fbjs": "^3.0.4",
"iamport-react-native": "^2.0.1",
"install": "^0.13.0",
"peer": "^0.6.1",
"prop-types": "^15.8.1",
"react": "17.0.2",
"react-native": "0.68.2",
"react-native-camera": "git+https://git@github.com/react-native-community/react-native-camera.git",
"react-native-chart-kit": "^6.12.0",
"react-native-config": "^1.4.6",
"react-native-dotenv": "^3.3.1",
"react-native-fade-in-out": "^1.0.6",
"react-native-modal": "^13.0.1",
"react-native-paper": "^4.12.1",
"react-native-safe-area-context": "^4.2.5",
"react-native-screens": "^3.13.1",
"react-native-send-intent": "^1.3.0",
"react-native-share": "^7.6.6",
"react-native-splash-screen": "^3.3.0",
"react-native-svg": "^12.3.0",
"react-native-swipe-gestures": "^1.0.5",
"react-native-view-shot": "^3.3.0",
"react-native-webview": "^11.22.3",
"recoil": "^0.7.3",
"resolve-url": "^0.2.1",
"source-map-resolve": "^0.6.0",
"uglify-es": "^3.3.9",
"uuid": "^8.3.2"
},
"devDependencies": {
"@babel/core": "^7.17.10",
"@babel/runtime": "^7.17.9",
"@react-native-community/eslint-config": "^3.0.1",
"babel-jest": "^28.1.0",
"escape-string-regexp": "^5.0.0",
"eslint": "^8.15.0",
"eslint-plugin-react": "^7.29.4",
"eslint-plugin-react-hooks": "^4.5.0",
"jest": "^28.1.0",
"metro-react-native-babel-preset": "^0.70.3",
"react-test-renderer": "17.0.2"
},
"jest": {
"preset": "react-native"
}
}

我以前也遇到过完全相同的问题。我认为DrawerLayoutAndroid与堆栈导航器不兼容。我推荐在@react navigation/pdrawer中使用DrawerNavigator。请参考以下链接。https://reactnavigation.org/docs/drawer-navigator

相关内容

最新更新