状态更新触发RNSimpleCompass函数

时间:2020-09-04 14:39:46

标签: react-native

我在使用RNSimpleCompass库时遇到了问题

他们提供的示例如下:

import RNSimpleCompass from 'react-native-simple-compass';

const degree_update_rate = 3; // Number of degrees changed before the callback is triggered
RNSimpleCompass.start(degree_update_rate, (degree) => {
  console.log('You are facing', degree);
  RNSimpleCompass.stop();
});

此代码执行一次,记录手机的方向并停止指南针。

如果我在RNSimpleCompass.stop();行中添加注释,则每次指南针从上一个方向移动3度或更多度时都会触发该功能,因此我可以正确看到日志。

到目前为止一切顺利。但是,如果我尝试在函数start内更新变量的状态,则看起来状态的更新也会触发该函数,因此我看到很多从触发器到该函数的日志都是不希望的。

import RNSimpleCompass from 'react-native-simple-compass';

const degree_update_rate = 3; // Number of degrees changed before the callback is triggered
RNSimpleCompass.start(degree_update_rate, (degree) => {
  console.log('You are facing', degree);
  setDegrees(degree);   // here I'm updating the variable degrees using the useState hook.
  // RNSimpleCompass.stop();
});

我的想法是我想渲染依赖于度数变量的内容,因此每次更改时,我将状态更新为main函数都会重新渲染组件。

我在做什么错?有没有办法阻止状态更新来触发罗盘功能?

0 个答案:

没有答案