2016-11-29 4 views
-1

Ich bin sehr neu in react-native. Ich verwende https://github.com/rusel1989/react-native-bluetooth-serial, um meine Android-App mit einem BT-Gerät zu verbinden. Dieser GitHub Repo hat ein Beispiel, das funktioniert. Ich konnte Befehle von App zu Gerät senden.So verbinden Sie BluetoothSerial setDataAvailableCallback(), um die Textanzeige zu aktualisieren

Jetzt möchte ich, dass mein Gerät Daten an die App zurücksendet. Stellen Sie es sich als IoT-Daten vor, nur ein paar Bytes, die alle paar Sekunden gesendet werden. Ich weiß, dass setDataAvailableCallback() verwendet werden kann. Meine Frage ist, dass, wenn ich ein <Text /> Element in JSX erstelle, wie kann ich das mit dem Rückruf verbinden. Vielen Dank.

API: https://github.com/derektu/react-native-bluetooth-serial

+0

Mein Vorschlag ist, dass Sie das Tutorial auf React tun: https://facebook.github.io/react/tutorial/tutorial.html, es wird Ihnen beibringen, wie man das '' Element durch Einstellung des Zustandes aktualisiert. – peterp

+0

Das oben erwähnte Tutorial war für dieses spezielle Problem nicht nützlich. Das war nützlicher: https://facebook.github.io/react-native/docs/state.html#content –

Antwort

0

ich es dachte, indem sie versuchen, sich ein paar Änderungen am Beispiel heraus, dass ich hatte. Innerhalb render(), inklusive ich folgendes: <Text>{this.state.myText}</Text>

Im Konstruktor dieser Klasse, habe ich ein neues Feld this.state, die zunächst auf eine leere Zeichenfolge festgelegt ist:

this.state = { 
     ... 
     myText: '' 
    } 

Im gleichen Konstruktor, habe ich up diese Abfrage bei 100 ms Periodizität:

setInterval(() => { 
     BluetoothSerial.read() 
     .then((res) => { 
      this.setState({ myText: res }) 
     }) 
     }, 1000); 

Ich werde dies zu lesen, nur wenn Bytes verfügbar sind. Auch meine Installation hatte keine setDataAvailableCallback(), weshalb ich sie nicht verwenden konnte.

Verwandte Themen