javascript - example - react native vs ionic
Error al llamar a AppRegistry.registerComponent (7)
En mi caso, es causado por la sensibilidad de mayúsculas y minúsculas del nombre de la aplicación en index.ios.js
.
Funciona después de que cambié de
AppRegistry.registerComponent(''AppleReactNative'', () => App)
a
AppRegistry.registerComponent(''applereactnative'', () => App)
react-native init Wevaha
un nuevo proyecto usandoreact-native init Wevaha
, después de ejecutarlo correctamente, modifiqué la aplicación de muestra en función de mis requisitos. De nuevoreact-native init Wevaha
, pero la próxima vez que ejecuto la aplicación me aparece el error como
'' Application Wevaha has not been registered.This is either due to a require() error during intialization or failure to call
AppRegistry.registerComponent ''
Es probable que ya tenga otro servidor Recopilador nativo de React ejecutándose para otra aplicación o que el nombre de la aplicación en AppDelegate.m y su index.js no sea el mismo.
Intente cerrar todas las ventanas de la terminal, moduleName
verificar el valor de moduleName
y moduleName
ejecutar el proyecto.
Matar todos los demás procesos de nodo funcionó para mí, es decir. ps -ef | grep node
ps -ef | grep node
para encontrar esos procesos y
pkill -f node
matar los procesos
Para dar más detalles sobre lo que dijo el oblador, todavía tenía este problema después de cerrar todas las ventanas de la terminal / matar a todos los demás procesos de React Native. Lo que me sucedió fue que el valor de moduleName
en AppDelegate.m
(en la raíz del proyecto XCode) era incorrecto. Estoy usando una compilación de Snowflake de Barton Hammond y estaba tratando de cambiar el nombre de "copo de nieve" a la mía y me perdí este valor y estaba recibiendo ese error.
Para mi caso, echo un vistazo al número de puerto del empaquetador en el que está escuchando. Es el resultado de su llamada a npm start
en su directorio de proyecto raíz.
┌────────────────────────────────────────────────────────────────────────────┐ │ Running packager on port 8081. │ │ │ │ Keep this packager running while developing on any JS projects. Feel │ │ free to close this tab and run your own packager instance if you │ │ prefer. │ │ │ │ https://github.com/facebook/react-native │ │ │ └────────────────────────────────────────────────────────────────────────────┘
Luego verifico qué aplicación está escuchando en ese puerto a través de
lsof -i :8081
Resultado:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME AwesomePr 8131 haxpor 9u IPv6 0x372bdab8e928e839 0t0 TCP localhost:56484->localhost:sunproxyadmin (SYN_SENT)
Ahora toma ese número PID
y fuerza a matarlo a través de
kill -9 8131
Ejecute su paquete de nuevo de manera ideal con el restablecimiento de la memoria caché a través de npm start -- --reset-cache
, debería estar bien ahora.
FYI :
reaccionar: 15.4.2
, reactivo-nativo: 0.41.2
Para nosotros, el problema era que el nombre de la aplicación registrada no coincidía con la carpeta raíz. Por lo tanto, si su carpeta raíz es /ChatApp
, registre su aplicación de la siguiente manera:
AppRegistry.registerComponent(''ChatApp'', () => App);
Si se enfrenta a este problema mientras se ejecuta en un dispositivo Android o un emulador de Android,
aparte de index.js También debes asegurarte de que el nombre de la aplicación sea el mismo en el siguiente archivo index.android.bundle
:
que puedes encontrar en esta ruta: ~android/app/src/main/assets/index.android.bundle
Busque el nombre de la aplicación anterior y reemplácelo con el nombre real.
funcionó para mí, espero que ayude a otros también.