Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用加速计传感器触发计数器向上功能_Javascript_Reactjs_React Native_Accelerometer_Sensors - Fatal编程技术网

Javascript 使用加速计传感器触发计数器向上功能

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

我遇到了一个问题,我想触发一个函数或其他东西,如果在加速度传感器的x轴上达到了一个特定的数字,它会向上计数。 我尝试使用一个位于渲染部分的函数,但出现了一个问题,它不能计数

在那之后,我试着把它写在一个钩子里,然后我得到了这个错误

这就是我目前得到的

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

}, []);