我想访问一个或多个列表或变量在整个树我的程序,并执行操作的添加,删除,编辑该列表,我解决了这个问题,通过使用提供程序包,如下图:
我在第一次做这门课
class TaskData extends ChangeNotifier {
List<Task> _tasks = [
Task(title: 'Buy Milk'),
Task(title: 'Buy Eggs'),
Task(title: 'Buy Bread'),
];
UnmodifiableListView<Task> get tasks => UnmodifiableListView(_tasks);
int get taskCount => _tasks.length;
toggleDone(index) {
_tasks[index].toggleDone();
notifyListeners();
}
addTask(data) {
_tasks.add(Task(title: data));
}
removeTask(index) {
_tasks.removeAt(index);
notifyListeners();
}
}
然后提供像这样的树
void main() {
runApp(ChangeNotifierProvider(
create: (BuildContext context) => TaskData(),
child: MaterialApp(
theme: ThemeData(
useMaterial3: true,
),
home: TasksScreen(),
),
));
}
我用这样的代码
class TasksList extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Consumer<TaskData>(
builder: (context, taskData, child) {
return ListView.builder(
itemCount: taskData.taskCount,
itemBuilder: (context, index) {
print(taskData.tasks[index]);
return TaskTile(
taskTitle: taskData.tasks[index].title,
isChecked: taskData.tasks[index].isDone,
checkboxCallback: (newValue) {
taskData.toggleDone(index);
},
listTileCallback: () {
taskData.removeTask(index);
},
);
},
);
},
);
}
}
现在,我需要学习如何使用bloc和flutter_bloc以及模型类、实体类、存储库类等干净架构以及所有干净架构系统来完成此操作?
1条答案
按热度按时间km0tfn4u1#
1.想想可能发生的事件[Event类]
1.可以有多少个状态[State类]
和主文件
你可以按照bloclibrary和他们的示例代码。