没有这样的方法错误。 getter 被调用为 null

No such method error. The getter was called on null

我正在使用 Provider PackageListView.Builder.

在 flutter 中构建简单的 TodoList 应用程序

TaskModel.dart

class TaskModel { //Model class for the data to be stored
String task;
bool isCompleted;
String get getTask => task;
bool get getIsCompleted => isCompleted;
TaskModel({this.task, this.isCompleted});
}

Tasker.dart

class Tasker extends ChangeNotifier {
List<TaskModel> myTasks = [];

void addTask(TaskModel taskToAdd) {
myTasks.add(taskToAdd);
notifyListeners();
 }
}

现在 ListView.Builder 我正在尝试从 Tasker[= 访问 myTasks 34=] Class.

Consumer<Tasker>(
                  builder: (context, newTask, child) {
                    return ListView.builder(
                        itemCount: newTask.myTasks.length,  //The error is when accessing newTask.myTasks
                        itemBuilder: (context, index) {
                          return ListTile(.....);
                        });
                  },
                ),

错误信息是 *

The getter 'myTasks' was called on null. Receiver: null Tried calling: myTasks

*

我认为您错过了连接您的 class 的提供程序,因为如果您没有先定义它,它就无法检测到您的模型

return ChangeNotifierProvider<TaskModel>( //      <--- ChangeNotifierProvider
      create: (context) => TaskModel(),
child:Consumer<Tasker>(
                  builder: (context, newTask, child) {
                    return ListView.builder(
                        itemCount: newTask.myTasks.length,  //The error is when accessing newTask.myTasks
                        itemBuilder: (context, index) {
                          return ListTile(.....);
                        });
                  },
                ),