javascript - 在本机反应中根据时间轴绘制手机加速度计的实时数据
问题描述
我正在根据时间轴绘制移动加速度计的实时数据。x-axis
将有时间并y-axis
会显示加速度计的值。我react-native-highcharts
用于绘制数据。但是输出图是空白的。实时数据图的代码在 URL https://github.com/TradingPal/react-native-highcharts中给出。在这段代码中,我只是用y
加速度x-values
计替换。
解决方案
你正在改变状态,这在 React 中是一个很大的禁忌。
状态应该在任何时候都是不可变的,并且只能通过调用setState
. 如果您只是像示例中那样直接对其进行变异,则您的组件将不会更新。
我建议您了解更多有关React 中组件状态的信息(在 React Native 中也是如此),然后您将意识到如何重构您的调用this.state.dataArr.push
等。
render
应该是 和 的纯props
函数state
。
由于我们没有看到全貌,只有渲染方法(以后请尽量贴出完整的例子)我们只能在这里做假设。
我想在您的其他一些代码中,您正在记录加速度计并调用setState
change accelerometerData
。(如果您通过常规分配直接更改它,请将其更改为setState
调用。)然后,不要dataArr
在render
方法中进行变异,而是dataArr
使用相同的setState
调用进行更改。
ps 这仍然不是一个完美的解决方案,因为它仍然使用派生状态,但这是另一个 - 并且稍微更高级的 - 话题要讨论。
推荐阅读
- ruby-on-rails - 'gem activerecord-redshift-adapter' 是关于什么的?
- asp.net-mvc - 检查日期是否在范围内
- c# - 如何将所有解决方案项目 .Net framework 4.5.1 升级到 4.8 Visual Studio 2019
- agora.io - agora 支持视频通话铃声吗
- xml - 将字符串截断为特定字符 BIP RTF 文件
- java - 如何在一个项目中同时使用 Androidx 库和支持库?
- azure - 如何使用 New-AzADSpCredential 添加证书凭据
- node.js - 由于打字稿文件,运行节点 js 应用程序时出错
- java - 遍历泛型类方法返回的一些列表
- javascript - 使用 localforage 删除多个键值的最有效方法?