web-dev-qa-db-fra.com

Échec de l'appel de AppRegistry.registerComponent

J'ai créé un nouveau projet en utilisant react-native init Wevaha, après cela, je l'exécuter correctement, puis j'ai modifié l'exemple d'application en fonction de mon exigence à nouveau exécutez-le fonctionne correctement, mais la prochaine fois, alors que l'exécution de l'application, je reçois l'erreur comme

' Application Wevaha has not been registered.This is either due to a require() error during intialization or failure to call

AppRegistry.registerComponent '

La capture d’écran ci-dessous est disponible  enter image description here

30
vasavi

Il est probable qu'un autre serveur de packageur natif React s'exécute déjà pour une autre application ou que le nom de l'application dans AppDelegate.m et votre index.js ne soient pas identiques. 

Essayez de fermer toutes les fenêtres du terminal, vérifiez une nouvelle fois la valeur de moduleName et réexécutez le projet. 

65
oblador

Pour nous, le problème était que le nom de l'application enregistrée ne correspond pas au dossier racine. Donc, si votre dossier racine est /ChatApp, enregistrez votre application comme suit:

AppRegistry.registerComponent('ChatApp', ()  => App);
26
jmares93

Pour préciser ce que dit oblador, j’ai toujours ce problème après avoir fermé toutes les fenêtres du terminal et tué tous les autres processus React Native. Ce qui m'est arrivé est que la valeur de moduleName dans AppDelegate.m (à la racine du projet XCode) était incorrecte. J'utilise une version de Snowflake de Barton Hammond et j'essayais de le renommer «flocon de neige» en mon propre nom.

4
dwilt

Dans mon cas, je regarde le numéro de port du conditionneur dans lequel il écoute . C'est le résultat de votre appel npm start dans le répertoire de votre projet racine.

 ┌────────────────────────────────────────────── 
 │ Exécution du conditionneur sur le port 8081. │ 
 │ │ 
 │ Laissez cet outil de conditionnement fonctionner pendant que vous développez des projets JS. Sentez-vous │ 
 │ libre de fermer cet onglet et d’exécuter votre propre instance d’emballeur si vous 
 │ préfère. 
 │ │ 
 │ https://github.com/facebook/react-native │ 
 │ │ 
 └───────────────────────────────────────────────── 

Ensuite, je vérifie quelle application écoute sur ce port via

lsof -i :8081

Résultat: 

COMMAND PID UTILISATEUR TYPE FD TYPE DISPOSITIF TAILLE/OFF NOM NOM 
 AwesomePr 8131 haxpor 9u IPv6 0x372bdab8e928e839 0t0 TCP hôte local: 56484-> hôte local: sunproxyadmin (SYN_SENT)

Maintenant, prenez ce nombre PID et forcez-le à le tuer via

kill -9 8131

Exécutez à nouveau votre conditionneur avec la réinitialisation du cache via npm start -- --reset-cache, tout devrait bien se passer maintenant.

FYI:

réagir: 15.4.2, réagir-native: 0.41.2

4
haxpor

Dans mon cas, cela est dû à la sensibilité à la casse du nom de l'application dans index.ios.js.

Cela fonctionne après que j'ai changé de

AppRegistry.registerComponent('AppleReactNative', () => App)

à 

AppRegistry.registerComponent('applereactnative', () => App)
3
David Cheung

Tuer tous les autres processus de nœud a fonctionné pour moi Ie ps -ef | grep node  

pkill -f node

tuer les processus

2
philip_nunoo

Si vous rencontrez ce problème lors de l'exécution sur un périphérique ou un émulateur Android,

en dehors de index.js Vous devez également vous assurer que le nom de l'application doit être identique dans le fichier ci-dessous index.Android.bundle:

que vous pouvez trouver sur ce chemin: ~Android/app/src/main/assets/index.Android.bundle

Recherchez l'ancien nom de l'application et remplacez-le par le nom actuel.

cela a fonctionné pour moi, espérons que cela aidera les autres aussi.

0
Satish Mavani