Tried to register two views with the same name RNGestureHandlerButton

I try to create navigation with { createStackNavigator, createAppContainer } from 'react-navigation' but when a start my application i always receive error

I try a lot of thing and i don't find any documentation/help on this

This is my 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 
}

Solution 1:

Note this answer was written for Expo v33. Please check with the current documentation for react-navigation and the version of Expo that you are using for up-to-date installation instructions.

The reason for your error is that you are using react-navigation in your Expo app, however you have followed the tutorial incorrectly.

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

If you read the instructions it tells you that once you have installed react-navigation you should then install react-native-gesture-handler. However that is not what they say

Next, install react-native-gesture-handler. If you’re using Expo you don’t need to do anything here, it’s included in the SDK.

It says that if you are using Expo you do not need to install react-native-gesture-handler as it is already installed.

You are getting errors because you have installed react-native-gesture-handler, it already exists in Expo, and Expo is getting confused about where to get its information from.

To solve your problem do the following.

  1. Close all terminals running Expo
  2. Close the browser window running Expo
  3. Clear the project you were working on from the Expo app on your device.
  4. Delete your package-lock.json
  5. Delete your node_modules folder
  6. Remove the react-native-gesture-handler entry from your package.json
  7. Run npm i
  8. Restart Expo using expo start -c

Be careful when using Expo it is easy to install dependencies that cannot run with it, and cause yourself issues like this.

Solution 2:

For anyone else who gets here searching for:
"Unable to resolve "react-native-gesture-handler" from "node_modules@react-navigation\native\src\Scrollables.js""

I found the answer here:
https://github.com/expo/expo/issues/5107

If you're using Expo SDK 34+, despite what older threads says, you need to run the following to get it working:
expo install react-native-gesture-handler