如何将从Flatter中的Firebase DocumentSnapshot获得的列表中的值复制到新列表并向其中添加值?
Create是一个有状态的小部件,它从另一个类接收postDoc快照如何将从Flatter中的Firebase DocumentSnapshot获得的列表中的值复制到新列表并向其中添加值?,firebase,flutter,dart,Firebase,Flutter,Dart,Create是一个有状态的小部件,它从另一个类接收postDoc快照 class Create extends StatefulWidget { final DocumentSnapshot postDoc; Create({this.postDoc}); @override _CreateState createState() => _CreateState(); } 博士后有一个类型为List的“contributers”字段 我想复制widget.postDoc
class Create extends StatefulWidget {
final DocumentSnapshot postDoc;
Create({this.postDoc});
@override
_CreateState createState() => _CreateState();
}
博士后有一个类型为List的“contributers”字段
我想复制widget.postDoc['contributers']中的元素,并在最后添加另一个元素
新列表现在将用作新帖子中的值贡献者字段
我应该如何复制widget.postDoc['contributer']并向其添加元素
我已经试过了
List<dynamic> contributer;
contributer=widget.postDoc['contributers'];
contributer.add(widget.postDoc['username']);
但是贡献者现在是固定长度的,不能添加新元素。您使用的是固定长度列表,这有利于整体性能,但在您的用例中,您需要一个可扩展的列表。列表=列表 因此,请执行以下操作
List<dynamic> contributor = List();
contributor.addAll(widget.postDoc.data()['contirbutors']);
contributor.add(widget.postDoc.data()['username']);
这是一个可扩展的列表
void main(){
var myList = List();
myList.add(25);
myList.add(63);
myList.add(84);
print(myList);
}
PS:您应该应用最佳实践,为安装编写代码时,您应该将业务逻辑与演示文稿分开。您使用的是固定长度的列表,这有利于整体性能,但在您的用例中,您需要一个可扩展的列表。列表=列表 因此,请执行以下操作
List<dynamic> contributor = List();
contributor.addAll(widget.postDoc.data()['contirbutors']);
contributor.add(widget.postDoc.data()['username']);
这是一个可扩展的列表
void main(){
var myList = List();
myList.add(25);
myList.add(63);
myList.add(84);
print(myList);
}
PS:您应该应用最佳实践,为安装而编写的代码应该将您的业务逻辑与演示文稿分开。无法添加到固定长度列表的问题可以很容易地解决,如下所示:
List<dynamic> contributer = List.from(widget.postDoc.data()['contributers']);
contributer.add(widget.postDoc.data()['username']);
List.from返回一个可增长的列表&您可以向其中添加任何元素
文档:无法添加到固定长度列表的问题可以通过以下方式轻松解决:
List<dynamic> contributer = List.from(widget.postDoc.data()['contributers']);
contributer.add(widget.postDoc.data()['username']);
List.from返回一个可增长的列表&您可以向其中添加任何元素
文档:List contributer如何具有固定长度?postDoc是DocumentSnapshot,而不是List。postDoc['contributers']是List类型。它显示错误:未处理的异常:不支持的操作:添加到contributer时无法添加到固定长度的列表。请尝试contributer.addAllwidget.postDoc['contributers'];列表贡献者如何具有固定长度?postDoc是DocumentSnapshot,而不是List。postDoc['contributers']是List类型。它显示错误:未处理的异常:不支持的操作:添加到贡献者时无法添加到固定长度的列表。请尝试contributer.addAllwidget.postDoc['contributers'];