Cuando intento usar import {createStackNavigator} from @react-navigation/stack , me da un error
Invariant Violation: Tried to register two views with the same name RNCSafeAreaProvider
He intentado encontrar una solución, pero nada ayuda.

En mi caso, olvidé agregar una línea que es import 'react-native-gesture-handler'; en la parte superior del archivo en index.js
si no lo instala, debe instalarlo primero usando el comando npm install react-native-gesture-handler
O
yarn add react-native-gesture-handler
Ha habido algunas correcciones en Github para los problemas de este paquete al resolver el terrible error anterior, cuál de ellos funciona para mí. Destacaré un par de correcciones aquí y seguiré el enlace para obtener más.
Siga estos pasos para solucionarlo, pero solo probé la última parte:
yarn or npm installEl siguiente paso funciona para mí.
expo install react-native-safe-area-context Gracias a brentvatne .
Infracción invariable: se intentó registrar dos vistas con el mismo nombre Error de RNCSafeAreaProvider con @react-navigation/stack
Significa que ha instalado la misma extensión varias veces.
Ejecutar el comando "npm dedupe" resolvió mi problema.
o Yarn install (El comando de desduplicación no es necesario. La instalación de hilo ya se desduplicará).
Aunque ya está respondido, proporcionaré una solución que funcionó para mí.
"react-native-safe-area-context" probablemente esté causando un conflicto con el contenedor de navegación.
Eliminar el "contexto de área segura" resolvió el problema temporalmente para mí y probablemente sea el camino para una solución más permanente.
Soy un principiante de React-Native, pero este es mi aporte para ayudar a otras personas con problemas similares.
solo corriendo
expo upgraderesolvió mi problema
En el archivo pack-lock.json, elimine react-native-safe-area-context . Eso resolverá el problema.
El código se verá así:
"react-native-elements": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/react-native-elements/-/react-native-elements-3.1.0.tgz", "integrity": "sha512-U4CuyO+q2JlduPht4P0xz+oIbw3W53uYPpkMqvlwjJiVoFfwnpbAu+JZL01/7VMe98G4Y8nJImcBh7zK9cb3Uw==", "requires": { "@types/react-native-vector-icons": "^6.4.6", "color": "^3.1.2", "deepmerge": "^4.2.2", "hoist-non-react-statics": "^3.3.2", "lodash.isequal": "^4.5.0", "opencollective-postinstall": "^2.0.3", "prop-types": "^15.7.2", "react-native-ratings": "^7.3.0", "react-native-safe-area-context": "^3.1.9", "react-native-size-matters": "^0.3.1" }, "dependencies": { "deepmerge": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" }, "opencollective-postinstall": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz", "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==" }, ---> "react-native-safe-area-context": { <--- remove this "version": "3.1.9", "resolved": "https://registry.npmjs.org/react-native-safe-area-context/-/react-native-safe-area-context-3.1.9.tgz", "integrity": "sha512-wmcGbdyE/vBSL5IjDPReoJUEqxkZsywZw5gPwsVUV1NBpw5eTIdnL6Y0uNKHE25Z661moxPHQz6kwAkYQyorxA==" } } },La adición de package.json en scripts npm dedupe funcionó para mí.
Para mí funcionó usando los comandos:
npm dedupe expo updateDe acuerdo, esto puede parecer un poco loco, y no estoy muy seguro de cómo o por qué funcionó, pero funcionó. Intenté casi todas las respuestas aquí y no llegué a ninguna parte.
Nota: ya tenía ./package.json en mi directorio desde que mi aplicación arrojó este error anteriormente, vea a continuación
Por alguna razón, si hace lo siguiente:
Yarn , le permito crear ./yarn.lock y ./node_modulesnpm i que crea el archivo ./package-lock.jsonexpo start , mi aplicación se carga... No creo que esto sea una buena práctica, pero funcionó para mí. Aquí está mi ./package.json que tenía en mi directorio ANTES de ejecutar yarn /siguió los pasos en el orden anterior:
{ "main": "node_modules/expo/AppEntry.js", "scripts": { "start": "expo start", "android": "expo start --android", "ios": "expo start --ios", "web": "expo start --web", "eject": "expo eject" }, "dependencies": { "@babel/runtime": "7.0.0-beta.55", "@react-native-async-storage/async-storage": "^1.15.9", "@react-native-community/netinfo": "6.0.0", "@react-navigation/bottom-tabs": "^6.0.5", "@react-navigation/drawer": "^6.1.4", "@react-navigation/native": "^6.0.2", "aws-amplify": "^4.2.5", "aws-amplify-react-native": "^5.0.3", "expo": "~42.0.1", "expo-status-bar": "~1.0.4", "react": "16.13.1", "react-dom": "16.13.1", "react-native": "https://github.com/expo/react-native/archive/sdk-42.0.0.tar.gz", "react-native-gesture-handler": "~1.10.2", "react-native-reanimated": "~2.2.0", "react-native-safe-area-context": "3.2.0", "react-native-screens": "~3.4.0", "react-native-web": "~0.13.12" }, "devDependencies": { "@babel/core": "~7.9.0" }, "private": true }Si funciona para cualquiera que visite, genial, si alguien pudiera explicar o intentar repetir esto y se le ocurre una explicación, por favor comparta.
expo install react-native-safe-area-contextyarn install o la instalación de npm installme funciona la versión sdk(42.0.0) ❤️❤️❤️🥳🥳😉
aquí está la solución :)
abra la carpeta de ruta de su aplicación ==> node_modules ==> invariante ==> browser.js
en el archivo browser.js elimine el [código de condición si] (número de línea 28 a 46)
mi archivo package.json que se muestra a continuación:
"exposición": "~42.0.1",
"reaccionar": "16.13.1",
"react-native": "https://github.com/expo/react-native/archive/sdk-42.0.0.tar.gz",
"react-native-safe-area-context": "3.1.9",
reinstalar react-native-safe-area-context me funcionó en EXPO.
Lo que funcionó para mí fue desinstalar elementos nativos de reacción y reinstalarlos.
react-native-safe-area-context tiene un módulo dentro de react-native-elements, lo que provocó el error duplicado.
Las otras respuestas funcionaron solo temporalmente, pero el error continuaría apareciendo.
funciona para mí versión SDK (42.0.0)
aquí está la solución :)
abra la carpeta de ruta de su aplicación ==> node_modules ==> invariante ==> browser.js
en el archivo browser.js elimine el [código de condición si] (número de línea 28 a 46)
mi archivo package.json que se muestra a continuación:
"expo": "~42.0.1", "react": "16.13.1", "react-native": "https://github.com/expo/react-native/archive/sdk-42.0.0.tar.gz", "react-native-safe-area-context": "^3.3.0", "react-native-screens": "^3.5.0",aquí está la solución
Comentó la línea
abra la carpeta de ruta de su aplicación ==> node_modules ==> invariante ==> browser.js
en el archivo browser.js elimine el [código de condición si] (número de línea 28 a 46)
En mi caso, dos paquetes masked-view diferentes en package.json lo causaron:
"@react-native-community/masked-view": "0.1.10", "@react-native-masked-view/masked-view": "0.2.4", ReactNavigation5 requiere @react-native-community/masked-view , mientras que react-native-skeleton-placeholder tiene el otro como requisito previo. Entonces, al observar sus dependencias, puede eliminar una de ellas para deshacerse de este error.