Проблемы акселерометра в React-Native / Expo - PullRequest
1 голос
/ 13 марта 2019

Я создаю приложение на 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>
    );
}
}
...