React native(IOS)。我的代码中出错

时间:2017-03-08 11:16:54

标签: javascript ios react-native

我需要保留所有数据。我的数据如下:

时间,2(平均位置),纬度,经度,3(平均加速度计)x,y,z,

4(平均陀螺仪),x,y,z,5(平均磁强计),x,y,z。

所以,我只声明“sendData”变量

但我的代码中有一些错误。谢谢你的支持。

这是我的代码。

import React, { Component, PropTypes } from 'react';
import {
    StyleSheet,
    View,
    Text,
    Image,
    Dimensions,
    TouchableOpacity,
    MapView,
    zoom,
    DeviceEventEmitter
} from 'react-native';
import {Accelerometer, Gyroscope, Magnetometer} from 'NativeModules';
var {height, width} = Dimensions.get('window');
import api from './api';
import Profile from './Profile';
import ScrollableTabView, {DefaultTabBar, ScrollableTabBar } from 'react-native-scrollable-tab-view';
import Info from './Info';
// import motion from './motion';

var d = new Date();
var milliseconds = d.getTime();
var sendData = [{this.state.time}, 2, {this.state.region.latitude}, {this.state.region.longitude},
3, {this.state.Accx}, {this.state.Accy}, {this.state.Accz},
4, {this.state.Gyx}, {this.state.Gyy}, {this.state.Gyz},
5, {this.state.Magx}, {this.state.Magy}, {this.state.Magz}];


export default class Route2 extends Component {
    constructor(props){
    super(props);
    this.state = {
        time: '',
        Accx: 0,
        Accy: 0,
        Accz: 0,
        Gyx: 0,
        Gyy: 0,
        Gyz: 0,
        Magx: 0,
        Magy: 0,
        Magz: 0,
        region: {
            latitude: 13.980881,
            longitude: 100.5545009,
        }
    };

    this.onRegionChange = this.onRegionChange.bind(this);
}

componentDidMount() {

    setInterval(() => {
      this.setState({
        time: new Date().getTime()
      });
    }, 1000);

    Accelerometer.setAccelerometerUpdateInterval(0.1); // in seconds
    DeviceEventEmitter.addListener('AccelerationData', (data) => {
        this.setState({
            Accx: data.acceleration.x,
            Accy: data.acceleration.y,
            Accz: data.acceleration.z,
        });
    });
    Accelerometer.startAccelerometerUpdates(); // you'll start getting AccelerationData events above

    Gyroscope.setGyroUpdateInterval(0.1); // in seconds
    DeviceEventEmitter.addListener('GyroData', (data) => {
        this.setState({
            Gyx: data.rotationRate.x,
            Gyy: data.rotationRate.y,
            Gyz: data.rotationRate.z,
        });
    });
    Gyroscope.startGyroUpdates(); // you'll start getting GyroscopicData events above

    Magnetometer.setMagnetometerUpdateInterval(0.1); // in seconds
    DeviceEventEmitter.addListener('MagnetometerData', (data) => {
        this.setState({
            Magx: data.magneticField.x,
            Magy: data.magneticField.y,
            Magz: data.magneticField.z,
        });
    });
    Magnetometer.startMagnetometerUpdates(); // you'll start getting MagnetomerData events above
}

onRegionChange(region) {
    this.setState({ region });
}


    render() {
        return (


            <View style={styles.container}>

        <MapView style={styles.map}
          mapType="standard"
          showsUserLocation={true}
          followsUserLocation={true}
          showsCompass={false}
          showsPointOfInterest={false}
                    region={this.state.region}
          onRegionChange={this.onRegionChange}
        >

        </MapView>
                <View style={styles.container}>
          <Text>
                    Data: {this.state.time}, 2, {this.state.region.latitude}, {this.state.region.longitude},
                    3, {this.state.Accx}, {this.state.Accy}, {this.state.Accz},
                    4, {this.state.Gyx}, {this.state.Gyy}, {this.state.Gyz},
                    5, {this.state.Magx}, {this.state.Magy}, {this.state.Magz}{'\n'}
          </Text>
        </View>
      </View>

        );
    }
}





const styles = StyleSheet.create({
    container: {
        flex: 1,
        alignItems: 'center',
        justifyContent: 'center',
        backgroundColor: 'white'
    },
    image: {
        width: 200,
        height: 200,
    },
    text: {
        color: 'white',
        fontWeight: 'bold',
        backgroundColor: 'transparent',
        marginTop: 20,
    },
    map: {
        top: 0,
    width: width,
    height: height*2/3
  }
});

1 个答案:

答案 0 :(得分:0)

尝试在gcloud topic projections课程中声明sendData。最有可能出现错误的原因是您尝试在类声明之外通过Route2访问Route2州。