[ReactNative]DrawerLayoutAndroid在使用堆栈导航器后表现奇怪

ha5z0ras  于 2023-06-20  发布在  Android
关注(0)|答案(1)|浏览(128)

我正在用react native做一个android应用。
我通过DrawerLayoutAndroid在主页面创建了一个抽屉,并使用useRef应用到ref ={}
我使用**ref.current.openDrawer()来打开抽屉;* * 在某些按钮上。
第一次运行应用程序时,它工作得很好,但当你使用堆栈导航移动屏幕并按下按钮后返回到主页时,它就不能正常工作了。
屏幕只是变暗,抽屉没有出现。
与滑动手势一起使用仍然可以正常工作。
你们中有人遇到和我一样的问题吗?
为了简化我的代码,它看起来像这样:

  1. const Main = ({navigation}) => {
  2. const drawer = useRef(null);
  3. return(
  4. <DrawerLayoutAndroid
  5. ref={drawer}
  6. drawerWidth={300}
  7. drawerPosition={'left'}
  8. renderNavigationView={() => <MainDrawer />}
  9. >
  10. <TouchableOpacity onPress={() => drawer.current.openDrawer()} />
  11. </DrawerLayoutAndroid>
  12. );
  13. }

版本信息如下。

  1. {
  2. "name": "App",
  3. "version": "0.0.1",
  4. "private": true,
  5. "scripts": {
  6. "android": "react-native run-android",
  7. "ios": "react-native run-ios",
  8. "start": "react-native start",
  9. "test": "jest",
  10. "lint": "eslint ."
  11. },
  12. "dependencies": {
  13. "@babel/plugin-syntax-flow": "^7.18.6",
  14. "@bam.tech/react-native-make": "^3.0.3",
  15. "@flarelane/react-native-sdk": "^1.0.11",
  16. "@fortawesome/fontawesome-svg-core": "^6.1.2",
  17. "@fortawesome/free-regular-svg-icons": "^6.1.1",
  18. "@fortawesome/free-solid-svg-icons": "^6.1.1",
  19. "@fortawesome/react-native-fontawesome": "^0.2.7",
  20. "@react-native-community/async-storage": "^1.12.1",
  21. "@react-native-community/cameraroll": "^4.1.2",
  22. "@react-native-community/checkbox": "^0.5.12",
  23. "@react-native-community/geolocation": "^2.1.0",
  24. "@react-native-community/netinfo": "^9.3.0",
  25. "@react-native-community/slider": "^4.2.4",
  26. "@react-navigation/native": "^6.0.10",
  27. "@react-navigation/native-stack": "^6.6.2",
  28. "dependencies": "^0.0.1",
  29. "fbjs": "^3.0.4",
  30. "iamport-react-native": "^2.0.1",
  31. "install": "^0.13.0",
  32. "peer": "^0.6.1",
  33. "prop-types": "^15.8.1",
  34. "react": "17.0.2",
  35. "react-native": "0.68.2",
  36. "react-native-camera": "git+https://git@github.com/react-native-community/react-native-camera.git",
  37. "react-native-chart-kit": "^6.12.0",
  38. "react-native-config": "^1.4.6",
  39. "react-native-dotenv": "^3.3.1",
  40. "react-native-fade-in-out": "^1.0.6",
  41. "react-native-modal": "^13.0.1",
  42. "react-native-paper": "^4.12.1",
  43. "react-native-safe-area-context": "^4.2.5",
  44. "react-native-screens": "^3.13.1",
  45. "react-native-send-intent": "^1.3.0",
  46. "react-native-share": "^7.6.6",
  47. "react-native-splash-screen": "^3.3.0",
  48. "react-native-svg": "^12.3.0",
  49. "react-native-swipe-gestures": "^1.0.5",
  50. "react-native-view-shot": "^3.3.0",
  51. "react-native-webview": "^11.22.3",
  52. "recoil": "^0.7.3",
  53. "resolve-url": "^0.2.1",
  54. "source-map-resolve": "^0.6.0",
  55. "uglify-es": "^3.3.9",
  56. "uuid": "^8.3.2"
  57. },
  58. "devDependencies": {
  59. "@babel/core": "^7.17.10",
  60. "@babel/runtime": "^7.17.9",
  61. "@react-native-community/eslint-config": "^3.0.1",
  62. "babel-jest": "^28.1.0",
  63. "escape-string-regexp": "^5.0.0",
  64. "eslint": "^8.15.0",
  65. "eslint-plugin-react": "^7.29.4",
  66. "eslint-plugin-react-hooks": "^4.5.0",
  67. "jest": "^28.1.0",
  68. "metro-react-native-babel-preset": "^0.70.3",
  69. "react-test-renderer": "17.0.2"
  70. },
  71. "jest": {
  72. "preset": "react-native"
  73. }
  74. }
jchrr9hc

jchrr9hc1#

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

相关问题