React-Native:如何在传感器内部添加代码订阅React-Native传感器

React-Native:如何在传感器内部添加代码订阅React-Native传感器,react-native,accelerometer,sensors,react-native-sensors,React Native,Accelerometer,Sensors,React Native Sensors,我使用react本机传感器获取加速度计读数。它正在正确读取传感器值。由于不熟悉React Native,我不知道如何在sensor.subscribe方法中添加代码来计算加速度向量 import { setUpdateIntervalForType, SensorTypes, accelerometer, gyroscope } from 'react-native-sensors'; ........ export default class Accelerometer exte

我使用react本机传感器获取加速度计读数。它正在正确读取传感器值。由于不熟悉React Native,我不知道如何在sensor.subscribe方法中添加代码来计算加速度向量

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,
    };
}
以下是每当我获得新的加速计读数时,我要执行的计算代码:

    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,
    });

如果我将代码直接放在Accelerator.subscribe()中,它将抛出错误。我如何才能做到这一点?

您应该将代码放在括号内。
在arrow函数中,如果您不使用
{}
,则只能写一行

accelerometer.subscribe(({ x, y, z, timestamp }) =>{
    this.setState({ accel_x: x });
    alert('Test this');
}

您得到的错误是什么?如果我在setState之后像这样添加额外的代码:
Accelerator.subscribe({x,y,z,timestamp})=>this.setState({accel_x:x});在编译期间发出警报('testthis');
。错误指向“;”似乎我只能在subscribe call.OMG中放一行代码。太简单了,我觉得自己像个傻瓜。谢谢!