首页 > 解决方案 > 变量未更改时更改

问题描述

我有一个 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

标签: flutterdart

解决方案


它存储的是指向变量的链接,而不是数据。只需以适合您的代码的方式从变量中获取数据,然后将其分配给变量而不是引用。


推荐阅读