Я несколько дней балуюсь флаттером и пытаюсь создать простое приложение ToDo, как учебный проект.Я пытаюсь реализовать что-то вроде BLoC.Список виджетов ListItem создается с помощью ListView.builder, обернутого в StreamBuilder.Я реализовал StreamController '<' List '<' Note '>'> ', и всякий раз, когда я добавляю новую заметку в список, мне удавалось добавить ее во временный список, а затем пропустить список через StreamSink,хотя я подозреваю, что каждый раз при добавлении элемента он перестраивает весь ListView.
Я пытаюсь учиться по частям, чтобы понимать потоки изолированно.Как лучше это реализовать?Я могу только найти примеры простых типов, таких как Stream, но не для сложных типов, таких как Lists.
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.Я пытался не использовать какие-либо внешние пакеты, так как я просто хочу изучить основы.