0

私は反応ネイティブ開発の最初のステップをやっていますが、デバイスのセンサーにアクセスする際に問題があります。私のindex.android.jsでは、私は私がやった反応ネイティブのセンサーにリスナーを追加する方法は?

undefined is not a function (evaluating 'this.setState({titleText:"ttt"})') 

あるエミュレータ上でアプリを実行しているエラーメッセージを得るか

import { 
    DeviceEventEmitter 
} from 'react-native'; 

import { SensorManager } from 'NativeModules'; 
var mSensorManager = require('NativeModules').SensorManager; 

export default class PropertyFinder extends Component { 

    constructor(props) { 
    super(props); 

    this.state = { 
     titleText: "Bird's Nest" 
    }; 

    mSensorManager.startAccelerometer(100); 

    DeviceEventEmitter.addListener('Accelerometer', function (data) { 
     this.setState({ titleText: "ttt" }) 
    }); 
    } 

    render() {... 

...

をやっていますコンソールに

npm i react-native-sensor-manager --save 

をロードすることによって、私のプロジェクトでsensormanagerを統合し、そのパッケージが実際にrecognizする必要がありますed。

問題の可能性はありますか?

ありがとうございます!

答えて

1

addListenerメソッドは、コールバック関数に別のコンテキストを追加します。あなたは

var that = this; 
DeviceEventEmitter.addListener('Accelerometer', function (data) { 
    that.setState({ titleText: "ttt" }) 
}); 

または

DeviceEventEmitter.addListener('Accelerometer', function (data) { 
    this.setState({ titleText: "ttt" }) 
}.bind(this)); 
+0

大きな助けを使用することができ、ありがとうございました! – s4inz

関連する問題