Javascript 使用加速计传感器触发计数器向上功能
我遇到了一个问题,我想触发一个函数或其他东西,如果在加速度传感器的x轴上达到了一个特定的数字,它会向上计数。 我尝试使用一个位于渲染部分的函数,但出现了一个问题,它不能计数 在那之后,我试着把它写在一个钩子里,然后我得到了这个错误 这就是我目前得到的Javascript 使用加速计传感器触发计数器向上功能,javascript,reactjs,react-native,accelerometer,sensors,Javascript,Reactjs,React Native,Accelerometer,Sensors,我遇到了一个问题,我想触发一个函数或其他东西,如果在加速度传感器的x轴上达到了一个特定的数字,它会向上计数。 我尝试使用一个位于渲染部分的函数,但出现了一个问题,它不能计数 在那之后,我试着把它写在一个钩子里,然后我得到了这个错误 这就是我目前得到的 import React,{useState,useffect}来自“React”; 从“react native”导入{样式表、文本、TouchableOpacity、视图}; 从“expo传感器”导入{加速计}; 导出默认函数App(){ c
import React,{useState,useffect}来自“React”;
从“react native”导入{样式表、文本、TouchableOpacity、视图};
从“expo传感器”导入{加速计};
导出默认函数App(){
const[data,setData]=useState({});
const[count,setCount]=useState(0);
useffect(()=>{
_切换();
}, []);
useffect(()=>{
return()=>{
_取消订阅();
};
}, []);
常量切换=()=>{
如果(此订阅){
_取消订阅();
}否则{
_订阅();
}
};
常量订阅=()=>{
此._订阅=Accelerator.addListener(accelerometerData=>{
设置数据(加速度计数据);
});
};
const_unsubscribe=()=>{
this._subscription&&this._subscription.remove();
此订阅为空;
};
设{x,y,z}=数据;
返回(
加速计:(单位为Gs,其中1 G=9.81 m s^-2)
x:{x}y:{y}z:{z}
{x>0.7?设置计数(计数+1):不工作}
{count}
);
}
const styles=StyleSheet.create({
按钮容器:{
flexDirection:'行',
对齐项目:“拉伸”,
玛金托普:15,
},
按钮:{
弹性:1,
为内容辩护:“中心”,
对齐项目:“居中”,
背景颜色:“#eee”,
填充:10,
},
中间按钮:{
borderLeftWidth:1,
borderRightWidth:1,
边框颜色:“#ccc”,
},
传感器:{
玛金托普:45,
水平方向:10,
},
正文:{
textAlign:'中心',
},
});
您不应该在函数中使用关键字this
,请利用钩子获得类似的行为
useEffect(() => {
_toggle();
return () => {
_unsubscribe();
};
}, []);