我有一个有状态的小部件,其中有一个这样的列表,
import 'package:flutter/material.dart';
import 'package:todoapp/widgets/tasks_tile.dart';
import 'package:todoapp/models/Tasks.dart';
class TasksList extends StatefulWidget {
@override
_TasksListState createState() => _TasksListState();
}
class _TasksListState extends State<TasksList> {
List<Task> task = [
Task(
taskTitle: "Buy Bread",
),
Task(
taskTitle: "Buy Cream",
),
Task(
taskTitle: "Buy Beer",
)
];
@override
Widget build(BuildContext context) {
return ListView.builder(
itemCount: task.length,
itemBuilder: (context,index){
return TaskTile(isChecked: task[index].isDone,
taskText: task[index].taskTitle,
callBackCheckBox: (bool checkBoxState){
setState(() {
task[index].toogleDone();
});
});
});
}
}如何在另一个dart文件中的无状态小部件中访问此列表?我是第一次接触flutter。请解释一下它背后的概念。
发布于 2020-08-23 14:57:58
访问task列表的Aman Chaudhary通过在另一个dart文件中传递Stateless小部件构造器中所有需要的值来完成。
在这里,您可以看到您的ListView.builder正在返回带有所有必需参数的stateless小部件:
return ListView.builder(
itemCount: task.length,
itemBuilder: (context,index){
return TaskTile(isChecked: task[index].isDone,
taskText: task[index].taskTitle,
callBackCheckBox: (bool checkBoxState){
setState(() {
task[index].toogleDone();
});
});
});这意味着,每当处理callBackCheckBox时,都会刷新stateful小部件,并且ListView.builder会用所有task列表更新来更新他的子项。
https://stackoverflow.com/questions/63544086
复制相似问题