Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如果颤振中listA=List.from(listB),如何防止元素不从listB编辑和从listA编辑?_Android_List_Flutter_Dart - Fatal编程技术网

Android 如果颤振中listA=List.from(listB),如何防止元素不从listB编辑和从listA编辑?

Android 如果颤振中listA=List.from(listB),如何防止元素不从listB编辑和从listA编辑?,android,list,flutter,dart,Android,List,Flutter,Dart,在flatter中,我有两个列表,代码如下。我从ListA更改了一个元素,但也从ListB更改了它,为什么会发生这种情况 List<Model> listA = List(), listB = [ new Model.withData(value: "b1"), new Model.withData(value: "b2") ]; listA = List.from(lis

在flatter中,我有两个列表,代码如下。我从ListA更改了一个元素,但也从ListB更改了它,为什么会发生这种情况

List<Model> listA = List(),
        listB = [
          new Model.withData(value: "b1"),
          new Model.withData(value: "b2")
    ];
    listA = List.from(listB);
    print("listA:" + listA.toString() + "   listB:" + listB.toString());
    listA[0].value = "a1";
    print("listA:" + listA.toString() + "   listB:" + listB.toString());
如何仅从ListA而不是从ListB更改元素

这是我的模型课

class Model{
  String value;
  Model.withData({this.value});

  @override
  String toString() {
    return 'Model{value: $value}';
  }
}

提前感谢。

我认为您正在将对象从listB复制到listA,因此在两个列表中,列表项引用相同的对象,并且当您对对象进行更改时,会对两个列表产生影响

对于(列表B中的var模型){
listA.add(新模型.withData(值:Model.value))
}

我希望尝试这样的方法,会有帮助

class Model{
  String value;
  Model.withData({this.value});

  @override
  String toString() {
    return 'Model{value: $value}';
  }
}