React Nativeアプリ(Android)に2つのBluetoothセンサーを接続しています。センサーが接続すると、私はReactネイティブコードでリスナーDeviceEventEmitter
を使用してリスンしているdeviceConnectイベントを発生させます。私はSensor
コンポーネントを持っていますが、各センサーの状態を表示するために使用していますが、リスナーがSensor
インスタンス(センサー1が接続されています)のisConnected
状態を更新すると起動すると、両方ともSensor
の接続状態接続されたセンサではなく両方のセンサで真となるようにしてください。私のコードのカットダウン版は以下の通りです。React NativeでDeviceEventEmitterを使用している場合のコンポーネントのインスタンスの状態を変更するには
class Sensor extends React.Component {
constructor(props) {
super(props);
this.state = {
sensorAddress: null,
sensorIsConnected:false,
sensorIsDiscovering: false,
sensorBattery:0
};
}
componentWillUnmount(){
DeviceEventEmitter.removeListener('deviceConnect', (message) => console.log(message))
}
componentDidMount(){
DeviceEventEmitter.addListener(
'deviceConnect',
(data) => {
this.setState({sensorIsConnected: true})
console.log("Connected" + JSON.stringify(data))
}
);
}
render() {
return (
<View>
<Text>CONNECTED EQUALS {this.state.sensorIsConnected}</Text>
</View>
);
}
}
class TwoSensors extends React.Component {
render() {
return (
<View>
<Text>Sensor 1</Text>
<Sensor key="sensor1"/>
<Text>Sensor 2</Text>
<Sensor key="sensor2"/>
</View>
);
}
}
私は、これはDeviceEventEmitter
がバインドされてどのように関係していると思いますが、私は私の人生のために何が間違ってうまくできません。どんな助けでも大歓迎です。
ありがとうございました。それがグローバルな出来事であることがわかったので、私はそれを考えることができました。私は簡単な解決策を持っています。 –