flutter - 变量未更改时更改
问题描述
我有一个 List 变量来存储一些数据的最后保存值。当此变量与当前数据不同时,它会更新它以匹配。但是,当我检查它们是否相同时,它们总是相同!当数据变量更新时,我检查两者并且最后保存的变量也发生了变化。当我分配变量的值时,Dart 是否会以某种方式链接变量?
我在检查之前尝试打印这两个变量,以确保它们没有改变,但在数据变量改变的那一刻它们仍然是相同的。
print("checking if data updated");
print(lastSavedData);
print(datas);
if (lastSavedData == datas) {
print("no new data");
} else {
print("new data is there");
saveData();
lastSavedData = datas;
}
I/flutter ( 8751): checking if data updated
I/flutter ( 8751): []
I/flutter ( 8751): []
I/flutter ( 8751): no new data
I/flutter ( 8751): checking if data updated
I/flutter ( 8751): [{name: Fu, notes: , goodness: 0}]
I/flutter ( 8751): [{name: Fu, notes: , goodness: 0}]
I/flutter ( 8751): no new data
解决方案
它存储的是指向变量的链接,而不是数据。只需以适合您的代码的方式从变量中获取数据,然后将其分配给变量而不是引用。
推荐阅读
- python - Flask C++ Socket Code 400,消息错误的请求语法
- javascript - Vue组件中的无限更新循环
- android - AutoCompleteTextView:在 XML 中提供值?
- sql - SQL 中的模糊查找以匹配名称
- visual-studio - 如何从 Visual Studio 将 iis 应用程序发布到 azure 虚拟机?
- workspace - 如何在我的特定设置中使用 JSP 表单和 servlet 设置基本的 Java EE 工作区?
- java - Android NDK 是否加密编译的 c++ 文件?
- reactjs - 我正在渲染一个反应类一些元素似乎有关闭标签的问题,但我确保在它们之间没有未关闭的标签我能做什么?
- python - if 语句的值没有返回到父函数的上下文视图
- java - 在hackerrank中的美丽二进制字符串中出现错误