web-dev-qa-db-fra.com

Réagir natif - la connexion n'a pas d'erreur de gestionnaire de connexion

J'ai créé un nouveau projet de réaction et lorsque je l'exécute sur iOS à partir de xcode, la console me donne ceci:

2017-05-19 23:25:34.119 [info][tid:main][RCTBatchedBridge.m:77] Initializing <RCTBatchedBridge: 0x6100001a6c80> (parent: <RCTBridge: 0x6100000c46e0>, executor: RCTJSCExecutor)
2017-05-19 23:25:51.287 [info][tid:main][RCTRootView.m:295] Running application test ({
    initialProps =     {
    };
    rootTag = 1;
})
2017-05-19 23:25:51.289 [info][tid:com.facebook.react.JavaScript] Running application "test" with appParams: {"rootTag":1,"initialProps":{}}. __DEV__ === true, development-level warning are ON, performance optimizations are OFF
2017-05-19 23:25:51.299771-0400 test[21948:1121429] [] nw_connection_get_connected_socket_block_invoke 3 Connection has no connected handler
2017-05-19 23:25:53.335282-0400 test[21948:1121426] [] nw_connection_get_connected_socket_block_invoke 4 Connection has no connected handler
2017-05-19 23:25:55.349190-0400 test[21948:1120112] [] nw_connection_get_connected_socket_block_invoke 5 Connection has no connected handler

Qu'est-ce que 2017-05-19 23:25:51.299771-0400 test[21948:1121429] [] nw_connection_get_connected_socket_block_invoke 3 Connection has no connected handler signifie ces lignes et comment résoudre le problème?

J'ai d'abord remarqué cela lorsque j'ai essayé d'utiliser fetch dans mon application et que cela ne fonctionnait pas. J'ai trouvé ces messages dans la console et découvert plus tard que ces messages se produisaient avec toutes mes applications, alors je suppose que cela signifie qu'il s'agit d'un problème de configuration de ma part? 

J'ai créé un nouveau programme de test pour tester la cause de ce problème et j'ai constaté que cela se produisait dans un tout nouveau projet. Ci-dessous mon code est celui qui a généré la sortie du journal ci-dessus:

/**
 * Sample React Native App
 * https://github.com/facebook/react-native
 * @flow
 */

import React, { Component } from 'react';
import {
  AppRegistry,
  StyleSheet,
  Text,
  View
} from 'react-native';

export default class test extends Component {
  render() {
    return (
      <View style={styles.container}>
        <Text style={styles.welcome}>
          Welcome to React Native!
        </Text>
        <Text style={styles.instructions}>
          To get started, edit index.ios.js
        </Text>
        <Text style={styles.instructions}>
          Press Cmd+R to reload,{'\n'}
          Cmd+D or shake for dev menu
        </Text>
      </View>
    );
  }
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: 'center',
    alignItems: 'center',
    backgroundColor: '#F5FCFF',
  },
  welcome: {
    fontSize: 20,
    textAlign: 'center',
    margin: 10,
  },
  instructions: {
    textAlign: 'center',
    color: '#333333',
    marginBottom: 5,
  },
});

AppRegistry.registerComponent('test', () => test);
34
guribe94

Essayez le processus ci-dessous

Menu Xcode -> Produit -> Edit Scheme ...

Variables d'environnement -> Ajouter -> Nom: "OS_ACTIVITY_MODE", Valeur: "disable"

Exécutez votre application à nouveau

43
Arunkumar

J'ai compris la solution:

Pour désactiver Verbose pour le mode d'activité du système d'exploitation

  1. Dans le menu xcode, Projet -> Scheme -> Edit Scheme. 
  2. Ensuite, sélectionnez Run à gauche, puis sélectionnez Arguments onglet à droite. 
  3. Dans Environment Variables, ajoutez le nom OS_ACTIVITY_MODE et la valeur sous la forme disable

Ou voir l'image ci-dessous.

 enter image description here

Remarque: le crédit de l'image va à Ramkrishna Sharma

16
Dev01

Cette erreur provient probablement du websocket intégré à react-native pour se connecter à react-devtools. Si vous n’exécutez pas react-devtools lors du débogage, vous obtiendrez cette erreur, qui envoie également de nombreux messages sur le pont qui se plaignent de ne pas pouvoir ouvrir la prise Web (vous ne verrez ces erreurs que si vous utilisez quelque chose comme rn-snoopy ).

L’erreur s’arrête dès que vous installez et ouvrez react-devtools. Consultez ces instructions pour savoir comment procéder: https://github.com/facebook/react-devtools/blob/master/packages/react-devtools/README.md

9
Eric Musgrave

Pour désactiver les flux websocket, j'ai procédé comme suit:

  • dans xcode: Libraries/React.xcodeproj/React/Inspector/RCTInspectorPackagerConnection.m: recherchez - (void)connect { et ajoutez return; juste après.

  • dans node_modules/react-native/Bibliothèques/Core/Outils/setupDevtools.js: remplacez if (__DEV__) par if (false)

c'est assez moche mais bien meilleur que la solution OS_ACTIVITY, car cela ne cache ni n'empêche aucun autre outil de débogage.

2
Moritz

Dans mon cas, cela était dû à une application de pare-feu (Little Snitch) qui ne demande jamais l'accès lors de l'exécution d'une application native-rea. Les étapes qui fonctionnent pour moi:

  • Ouvrir le navigateur Safari dans le simulateur
  • Visitez google.com ou n’importe quel domaine
  • Assurez-vous qu'il ouvre la page. Il demandera un accès, etc.
  • Redémarrez votre application dans le simulateur
  • Redémarrez la journalisation react-native log-ios

Cela devrait aider.

0
kontinuity

J'ai eu le même problème et le démarrage de mon application a été considérablement retardé à cause du problème. Le correctif pour moi est détaillé ici , mais je le récrirai au cas où le lien se briserait:

  1. Ouvrir Xcode
  2. Cliquez sur Product dans la barre du haut.
  3. Cliquez sur Scheme, faites défiler jusqu'à Edit Scheme
  4. Sélectionnez Run dans la barre de gauche, Info dans l’onglet supérieur.
  5. Remplacez Build Configuration de Debug par Release

Maintenant, non seulement l’application n’a plus les erreurs, mais elle démarre beaucoup plus rapidement. Les autres "corrections" ne cachent que l'erreur.

0
David Chu