it-swarm.com.de

Native Reagieren - Verbindung hat keine Fehlerbehandlung für Verbindungshandler?

Ich habe ein neues React-Projekt erstellt und wenn ich es von xcode aus auf iOS laufe, gibt mir die Konsole folgendes:

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

Was bedeuten 2017-05-19 23:25:51.299771-0400 test[21948:1121429] [] nw_connection_get_connected_socket_block_invoke 3 Connection has no connected handler diese Zeilen und wie kann ich das Problem beheben?

Ich bemerkte dies zum ersten Mal, als ich versuchte, fetch in meiner Anwendung zu verwenden, und stellte fest, dass es nicht funktionierte. Ich habe diese Meldungen in der Konsole gefunden und habe später festgestellt, dass diese Meldungen bei allen meinen Anwendungen vorkommen. Ich gehe also davon aus, dass es sich um ein Konfigurationsproblem meiner Seite handelt. 

Ich habe ein neues Testprogramm erstellt, um zu testen, was dies verursacht hat, und fand heraus, dass dies bei einem brandneuen Projekt der Fall ist. Unten ist mein Code, der die Protokollausgabe oben generiert hat:

/**
 * 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

Versuchen Sie den Prozess unterhalb

Xcode-Menü -> Produkt -> Schema bearbeiten ...

Umgebungsvariablen -> Hinzufügen -> Name: "OS_ACTIVITY_MODE", Wert: "disable"

Führen Sie Ihre App erneut aus

43
Arunkumar

Ich habe die Lösung herausgefunden:

So deaktivieren Sie Verbose für den OS-Aktivitätsmodus

  1. Im xcode-Menü Projekt -> Schema -> Schema bearbeiten. 
  2. Wählen Sie dann links Run und dann rechts die Registerkarte Arguments
  3. Fügen Sie in Environment Variables den Namen OS_ACTIVITY_MODE und den Wert als disable hinzu. 

Oder siehe Bild unten.

 enter image description here

Hinweis: Die Bildguthaben gehen an Ramkrishna Sharma

16
Dev01

Dieser Fehler ist höchstwahrscheinlich auf den Websocket zurückzuführen, der in reaktives System eingebunden ist, um eine Verbindung zu den reakt-devtools herzustellen. Wenn Sie während des Debuggens nicht react-devtools ausführen, wird dieser Fehler angezeigt. Außerdem werden mehrere Meldungen über die Bridge gesendet, die sich darüber beklagen, dass der Websocket nicht geöffnet werden kann (diese Fehler werden nur angezeigt, wenn Sie sie verwenden so etwas wie rn-snoopy ).

Der Fehler wird abgebrochen, sobald Sie reave-devtools installieren und öffnen. Anweisungen dazu finden Sie in diesen Anweisungen: https://github.com/facebook/react-devtools/blob/master/packages/react-devtools/README.md

9
Eric Musgrave

Um die Websocket-Streams zu deaktivieren, habe ich Folgendes getan:

  • in xcode: Libraries/React.xcodeproj/React/Inspector/RCTInspectorPackagerConnection.m: Suchen Sie - (void)connect { und fügen Sie return; unmittelbar danach hinzu.

  • in node_modules/reag-native/Libraries/Core/Devtools/setupDevtools.js: Ersetzen Sie if (__DEV__) durch if (false).

dies ist ziemlich hässlich, aber viel besser als die OS_ACTIVITY-Lösung, da andere Debugging-Tools nicht verborgen oder verhindert werden.

2
Moritz

In meinem Fall lag es an einer Firewall-Anwendung (Little Snitch), die niemals Zugriff anfordert, wenn sie von einer reaktiven Anwendung ausgeführt wird. Schritte, die für mich funktionieren:

  • Öffnen Sie den Safari-Browser im Simulator
  • Besuchen Sie google.com oder eine beliebige Domain
  • Stellen Sie sicher, dass die Seite geöffnet wird. Es fragt nach Zugang usw
  • Starten Sie Ihre App im Simulator neu
  • Protokollierung neu starten react-native log-ios

Das sollte helfen.

0
kontinuity

Ich hatte das gleiche Problem und der Start meiner App wurde aufgrund des Problems erheblich verzögert. Das eigentliche Update für mich ist detailliert hier , aber ich schreibe es neu, falls der Link bricht:

  1. Öffnen Sie Xcode
  2. Klicken Sie in der oberen Leiste auf Product
  3. Klicken Sie auf Scheme und scrollen Sie nach unten zu Edit Scheme.
  4. Wählen Sie in der linken Leiste Run und in der oberen Registerkarte Info aus
  5. Build Configuration von Debug in Release ändern

Nun hat die App die Fehler nicht nur nicht mehr, sie läuft auch viel schneller an. Die anderen "Korrekturen" verdecken nur den Fehler.

0
David Chu