javascript - React Native 未在更改状态上呈现胜利原生图表
问题描述
我正在尝试使用来自反应钩子的状态更新按钮按下时的胜利图表,如下所示:
const [weightData, setData] = useState([]);
const [date, setDate] = useState(new Date());
const [weight, setWeight] = useState(150);
图表采用 weightData 的位置
<VictoryLine
style={{
data: { stroke: "red" },
parent: { border: "1px solid #ccc" },
}}
data={weightData}
/>
并在按钮按下时更新该数据,如下所示:
const addWeight = () => {
setData(prevData => {
return [{x: date, y: weight}, ...prevData];
});
}
<Button
color="red"
onPress={addWeight}
title="Add"
/>
我对这种方法的问题是渲染似乎落后于大约 3 次按钮点击。我觉得这与更新异步状态有关,但是,我尝试的修复都没有奏效。使用开发工具检查显示状态每次都使用正确的对象进行更新,但是图表似乎落后了 3 次更新。任何关于如何在按钮按下时做出反应渲染的建议将不胜感激。
解决方案
推荐阅读
- java - SpringJPA 双向关系 - 无法删除实体
- webpack - Nightwatch + webpack 开发服务器 + bitbucket 管道
- mongodb - 在 docker compose 中设置副本的 Mongodb
- redux - Flutter 中使用嵌套 AppState 的 reducer 的最佳实践是什么
- java - 如何一次查询所有 /actuator/metrics?
- mysql - 表名超过 30 个字符且 Globalize 找不到我的表的 Oracle 数据库上的 Rails
- azure-iot-hub - IoT Edge 透明网关 + 下游设备:与 IoT Hub 的连接错误:TLS 身份验证错误
- windows-10 - Vmware Workstation 15 很宽的messege-box问题
- bash - Jira 应用程序访问
- python - 列表正在工作,但帖子在 Django Rest Framework 的嵌套序列化程序中不起作用