React-Native / Expo中的加速度计问题

时间:2019-03-13 12:05:23

标签: react-native accelerometer expo

我正在使用加速计的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>
    );
}
}

0 个答案:

没有答案