首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >how本机:如何在传感器内部添加代码,订阅React本机传感器

how本机:如何在传感器内部添加代码,订阅React本机传感器
EN

Stack Overflow用户
提问于 2019-03-07 07:07:47
回答 1查看 723关注 0票数 0

我正在使用反应本机传感器来获取加速度计读数。它正确地读取传感器值。作为响应本机的新方法,我不知道如何添加代码来计算sensor.subscribe方法中的加速向量。

代码语言:javascript
复制
import { 
setUpdateIntervalForType, 
SensorTypes, 
accelerometer, 
gyroscope 
} from 'react-native-sensors';

........

export default class Accelerometer extends Component {

constructor(props) {
    super(props);

    setUpdateIntervalForType(SensorTypes.accelerometer, 200);
    this.accelSubscription = accelerometer.subscribe(({ x, y, z, timestamp }) =>
        this.setState({
            accel_x: x,
            accel_y: y,
            accel_z: z,
        })
    );

    this.state = {
        acceleration: 0,
        accel_x: 0,
        accel_y: 0,
        accel_z: 0,
    };
}

当我得到新的加速度计读数时,这是我想要执行的计算代码:

代码语言:javascript
复制
    const accelx = this.state.accel_x;
    const accely = this.state.accel_y;
    const accelz = this.state.accel_z;
    const lastAccel = this.state.acceleration;
    const currAcceleration = Math.sqrt((accelx * accelx) + (accely * accely) + (accelz * accelz));
    //I need to delta value to detect changes
    const accelerationDelta = currAcceleration - lastAccel;
    this.setState({
        acceleration: currAcceleration,
    });

如果我将代码直接放在accelerometer.subscribe()中,就会抛出错误。我怎样才能做到这一点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-07 19:22:34

你应该把你的代码放在括号里。

如果不使用{},则只能编写一行

代码语言:javascript
复制
accelerometer.subscribe(({ x, y, z, timestamp }) =>{
    this.setState({ accel_x: x });
    alert('Test this');
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55037926

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档