我正在使用颤振和集团模式。Todo 教程 ( https://bloclibrary.dev/#/fluttertodostutorial?id=bloc ) 很好地解释了这个集团。
但是不,我想使用有关“对象同步已完成/正在运行”的信息来扩展示例应用程序。我附上了一张我对它应该如何工作的想法的图片。
我认为下面的函数正在做类似的事情——改变完整的布尔值。但是如何在异步调用后更改函数以更改 1 obj 的布尔值并将其直接触发到 UI。在 obj 1 之后转到 obj 2,依此类推。
Stream<TodosState> _mapToggleAllToState() async* {
if (state is TodosLoadSuccess) {
final allComplete =
(state as TodosLoadSuccess).todos.every((todo) => todo.complete);
final List<Todo> updatedTodos = (state as TodosLoadSuccess)
.todos
.map((todo) => todo.copyWith(complete: !allComplete))
.toList();
yield TodosLoadSuccess(updatedTodos);
_saveTodos(updatedTodos);
}
}
我希望你能理解我的解释并能帮助我:-)