我正在使用加速计的codeHS上构建应用程序。
我尝试将网站提供的加速度计组件拖放到我编写的代码中,只是为了查看该组件如何工作。
当我尝试运行代码时,调试器给了我一个错误,指出它无法读取addListener
事件,指出该事件是未定义的。是什么导致错误?我感谢任何见解或提示。
这是代码的副本:
import React, { Component } from 'react';
import { AppRegistry, Text, View, Listener, StyleSheet, TouchableOpacity } from 'react-native';
import { Constants, Accelerometer } from 'expo';
export default class App extends Component {
componentWillUnmount() {
this._unsubscribeFromAccelerometer();
}
componentDidMount() {
this._subscribeToAccelerometer();
}
state = {
accelerometerData: { x: 0, y: 0, z: 0 }
};
_subscribeToAccelerometer = () => {
this._acceleroMeterSubscription = Accelerometer.addListener(accelerometerData =>
this.setState({ accelerometerData })
);
};
_unsubscribeFromAccelerometer = () => {
this._acceleroMeterSubscription && this._acceleroMeterSubscription.remove();
this._acceleroMeterSubscription = null;
};
render() {
return (
<View style={styles.container}>
<Text style={styles.paragraph}>
<Text>
Accelerometer:
x = {this.state.accelerometerData.x.toFixed(2)}{', '}
y = {this.state.accelerometerData.y.toFixed(2)}{', '}
z = {this.state.accelerometerData.z.toFixed(2)}
</Text>
</Text>
</View>
);
}
}