gpt4 book ai didi

dart - 如何管理 Flutter 中的对象列表流?

转载 作者:IT王子 更新时间:2023-10-29 07:20:07 24 4
gpt4 key购买 nike

几天来我一直在研究 Flutter,我正在尝试制作一个简单的 ToDo 应用程序,作为一个学习项目。我正在尝试实现类似 BLoC 的东西。 ListItem 小部件列表是使用 ListView.builder 构建的,包装在 StreamBuilder 中。我已经实现了一个 StreamController'<'List'<'Note'>'>',每当我向列表中添加一个新的 Note 时,我都设法将它添加到一个临时列表中,然后通过 StreamSink 传递该列表,尽管我怀疑每次添加项目时它都会重建整个 ListView。

我正在尝试一点一点地学习,以孤立地理解流。什么是更好的实现方式?我只能找到 Stream 等简单类型的示例,但找不到 List 等复杂类型的示例。

class Note {
String title, note;
Note(this.title, this.note);
}

class ListBloc {
final notes = <Note>[];

final _controller = StreamController<List<Note>>.broadcast();
get controllerOut => _controller.stream.asBroadcastStream();
get controllerIn => _controller.sink;

addNewNote(Note note) {
notes.add(note);
controllerIn.add(notes);
}

void dispose() {
_controller.close();
}
}

我确信有更好的方法,它将向 ListView 添加一个新条目。我尽量不使用任何外部包,因为我只想学习基础知识。

最佳答案

为了在列表中添加和删除项目,重建整个列表没有任何问题(这就是它应该工作的方式)。

但是,为了不断更新列表中的项目,您可以为每个项目设置一个子流,以便在该项目更改时仅更新该项目。

关于dart - 如何管理 Flutter 中的对象列表流?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56110958/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com