Компас не показывает значения магнитометра - PullRequest
0 голосов
/ 22 сентября 2019

Здравствуйте, я пишу код, который показывает значения компонентов магнитометра (x, y, z).Проблема с моим кодом в том, что он постоянно дает нулевое значение.Ссылка на мою выставочную закуску прилагается https://snack.expo.io/@atiariaz/unnamed-snack.И вывод прилагается ниже.

import React, {Component} from 'react';
import {Image, ImageBackground, View, Text, StyleSheet} from 'react-native';
import Expo from 'expo';


export default class App extends Component{
  state={
    isReady: false,
    v: null,
  };

  _setupMagnetometerAsync = async() =>{
    Expo.Magnetometer.addListener(v=>{
      this.setState({v});
    });
  };
  componentDidMount() {
    this._setupMagnetometerAsync();
  }
  render(){
    // let theta = "0rad";
    // if(this.state.v){
    //   let {x,y,z} = this.state.v;
    //   theta = Math.atan(-y/x);
    //   if(-x>0&&y>0){
    //     // 
    //   } else if(y>0){
    //     theta+=Math.PI*2;
    //   }
    // }

    return(
      <View style = {styles.container}>
      <Text>{JSON.stringify(this.state.v)}</Text>
      <ImageBackground
      source = {require('./images.png')}
      style = {{
        height: 400,
        width: 340,
        alignItems: 'center',
        justifyContents: 'center',
      }}>
        <Image
        source = {require('./needle.png')}
        style={{
          height: 430,
          width: 420,
          opacity: 0.65,
          //transform: [{rotate: theta}]
        }}
        />
      </ImageBackground>
      </View>
    );
  }
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: 'center',
    alignItems: 'center',
    backgroundColor: '#ecf0f1',

  },
});

This is the output of above code

1 Ответ

0 голосов
/ 22 сентября 2019

Пожалуйста, посмотрите на пример рабочей закуски: https://snack.expo.io/HJ31mCVvH

Чтобы исправить изменения импорта закусок, импортируйте {Magnetometer} из 'expo-sensor';https://snack.expo.io/BJvcS04PS

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...