如何在颤动中制作变量列表?
Posted
技术标签:
【中文标题】如何在颤动中制作变量列表?【英文标题】:How to make a list of variables in flutter? 【发布时间】:2019-03-14 05:06:48 【问题描述】:我想在颤振中创建一个包含变量的列表。现在,当我尝试编辑列表的内容时,它实际上存储在列表本身中。例如,
static var _ratingSelected = "";
static var _disconnectSelected = "";
static var _uTypeSelected = "";
List finalSelectedList = [_uTypeSelected,_disconnectSelected,_ratingSelected];
这是我的列表,当我将编辑列表时,例如,
finalSelectedList[0] = "Main";
输出列表会是这样的
finalSelectedList = ["Main",_disconnectSelected,_ratingSelected];
它将编辑列表的 finalSelectedList[0] 位置,但不会编辑变量 _uTypeSelected。 有什么方法可以将值存储在变量 _uTypeSelected 中而不是位置 finalSelectedList[0]?
【问题讨论】:
请发布您的尝试Minimal, Complete, and Verifiable example,注明输入和预期输出。 当我将值存储在 0 位置 的列表中时,我希望它实际存储在变量 _uTypeSelected 中并且它不应该编辑实际列表(该列表仅包含这些变量)。 字符串是不可变的,所以你不能改变状态。 【参考方案1】:没有办法做到这一点。如果您使用finalSelectedList[0].someProp = "Main";
,其中变量是某些具有someProp
属性的类的实例,那么它会起作用,因为还有一个额外的抽象。字符串是原始值,添加到列表时按值复制,因此列表条目和变量之间没有任何连接。
class Foo
Foo(this.someProp);
String someProp;
static var _ratingSelected = Foo("");
static var _disconnectSelected = Foo("");
static var _uTypeSelected = Foo("");
List finalSelectedList = [_uTypeSelected,_disconnectSelected,_ratingSelected];
finalSelectedList[0].someProp = "Main";
【讨论】:
以上是关于如何在颤动中制作变量列表?的主要内容,如果未能解决你的问题,请参考以下文章
如何在这张图片中将多个列表视图添加到 sliver 列表中 - 颤动