我即将完成反应原生开发的第一步,而且我在访问设备的传感器方面遇到了问题。在我的index.android.js中,我正在做
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() {...
...
我在
模拟器上运行应用程序时收到错误消息undefined is not a function (evaluating 'this.setState({titleText:"ttt"})')
我通过加载
将sensormanager集成到我的项目中npm i react-native-sensor-manager --save
在控制台中,因此实际上应该识别包。
你知道这个问题是什么吗?
谢谢!
答案 0 :(得分: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));