【问题标题】:No such method error. The getter was called on null没有这样的方法错误。 getter 在 null 上被调用
【发布时间】:2020-10-02 00:18:54
【问题描述】:

我正在使用 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

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(.....);
                        });
                  },
                ),

错误信息是 *

getter 'myTasks' 在 null 上被调用。接收者:null 尝试调用: 我的任务

*

【问题讨论】:

  • 您在代码中的哪个位置提供了 Tasker?类似Provider(create: (_) =&gt; Tasker(), child: ...)

标签: flutter flutter-layout flutter-provider


【解决方案1】:

我在想你错过了连接你的类的提供者,因为如果你没有先定义它,它就无法检测到你的模型

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(.....);
                        });
                  },
                ),

【讨论】:

  • 我用过这个:- return ChangeNotifierProvider(builder: (context) => Tasker(); )
  • 好的,我知道构建器方法已被废弃。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-21
  • 1970-01-01
  • 1970-01-01
  • 2018-12-14
  • 2020-01-07
  • 1970-01-01
相关资源
最近更新 更多