React-Native:如何在传感器内部添加代码订阅React-Native传感器
我使用react本机传感器获取加速度计读数。它正在正确读取传感器值。由于不熟悉React Native,我不知道如何在sensor.subscribe方法中添加代码来计算加速度向量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
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中放一行代码。太简单了,我觉得自己像个傻瓜。谢谢!