试图注册两个具有相同名称的视图RNGestureHandlerButton

use*_*330 7 react-native

我尝试从“反应导航”使用{createStackNavigator,createAppContainer}创建导航,但是当我启动应用程序时,我总是会收到错误消息

我尝试了很多事情,但没有找到任何文档/帮助

这是我的 package.json

{ 
  "main": "node_modules/expo/AppEntry.js", 
  "scripts": { 
    "start": "expo start", 
    "android": "expo start --android", 
    "ios": "expo start --ios", 
    "eject": "expo eject" 
    }, 
  "dependencies": { 
    "expo": "^32.0.0", 
    "react": "16.5.0", 
    "react-native": "github.com/expo/react-native/archive/sdk-32.0.0.tar.gz",
     "react-native-gesture-handler": "^1.0.15", 
    "react-navigation": "^3.0.9" 
    }, 
  "devDependencies": { 
    "babel-preset-expo": "^5.0.0" 
    }, 
  "private": true 
}
Run Code Online (Sandbox Code Playgroud)

And*_*rew 12

错误的原因是您react-navigation在Expo应用程序中正在使用,但是您未正确遵循本教程。

https://reactnavigation.org/docs/en/getting-started.html

如果您阅读了说明,它告诉您,一旦安装react-navigation,则应先安装react-native-gesture-handler。但是那不是他们所说的

接下来,安装react-native-gesture-handler。如果您使用的是Expo,则无需在此处做任何事情,它已包含在SDK中。

它说,如果您正在使用Expo,则不需要安装,react-native-gesture-handler因为它已经安装。

因为安装了react-native-gesture-handler,它会出现错误,因为它已经存在于Expo中,并且Expo对于从何处获取其信息感到困惑。

要解决您的问题,请执行以下操作。

  1. 关闭所有正在运行的终端 Expo
  2. 关闭正在运行的浏览器窗口 Expo
  3. Expo设备上的应用程序清除您正在处理的项目。
  4. 删除你的 package-lock.json
  5. 删除资料node_modules
  6. react-native-gesture-handler从您的条目中删除条目package.json
  7. npm i
  8. 重新开始Expo使用expo start -c

使用Expo它时要小心,因为它很容易安装无法与它一起运行的依赖项,并导致类似这样的问题。