【发布时间】:2019-09-09 03:34:39
【问题描述】:
我有一个用于表单数据的单页应用程序,它获取文本和照片列表并创建一个 word 文档。
查看文档列表时,我注意到 的所有条目都有最近添加的值。
我正在使用这样的全局变量:
class FormData {
static String title = '';
static String procedureCovers = '';
static String department = '';
static String section = '';
static String isolationOfficer = '';
static String supervisor = '';
static String reviewer = '';
static List<dynamic> mechanicalIsolations = [];
static List<dynamic> electricalIsolations = [];
static dynamic isolationOfficersSignature;
static dynamic supervisorsSignature;
static dynamic reviewersSignature;
}
大多数表单数据都可以正常工作,只是当我去编辑列表时。我看到了覆盖变量的问题。
我的列表元素的格式是这样的:
Map<String, dynamic> mechanicalIsolationData = {
'isolation': '',
'isolateAt': '',
'circuitValve': '',
'imageFilePath': '',
'notes': '',
};
Map<String, dynamic> electricalIsolationData = {
'isolation': '',
'isolateAt': '',
'circuitValve': '',
'notes': '',
};
我正在添加我认为是列表条目的新空白实例:
FormData.mechanicalIsolations.add(mechanicalIsolationData);
但新列表项具有前一个列表项的值。
然后,当我设置最新列表项字段的值时,它会用新值覆盖所有列表项。我是这样设置的:
FormData.mechanicalIsolations[widget.listIndex]['isolation'] = text;
我检查了列表索引,它是正确的数字,我检查了它设置的值,它是不同的。但它仍然会用该值覆盖所有先前的列表元素。
我知道我这样做的方式是错误的,我只是不确定到底是什么原因造成的,以及如何最好地解决它。
感谢您的帮助
【问题讨论】:
标签: flutter dart global-variables