方法“ add”在null上被调用

时间:2019-04-23 06:58:37

标签: firebase dart flutter

我尝试解析Firebase集合并返回服务类型列表。 在这里,我已用硬代码替换了firebase调用并进行了解析,以简化操作。

 Future<List<Service>> _getServices() async {
   List<Service> _servicesList;

      Service service = new Service(
          id: 1,
          name: "name",
          location: "location",
          description: "description",
          image: "image");
      print(service.description);
      _servicesList.add(service);
  return _servicesList;
 }

函数中的打印返回正确的内容,但出现此错误:

  

NoSuchMethodError:方法'add'在null上调用。

5 个答案:

答案 0 :(得分:2)

那是因为您尚未初始化_servicesList

List<Service> _servicesList = List<Service>();

答案 1 :(得分:0)

你必须这样声明。

// use list bracket []  not use like this  => List addItem;

for(var i=0; i<10; i++){

   addItem.add(i);

}

答案 2 :(得分:0)

我在提供者中声明了 List。我按照接受的答案纠正了异常,然后使用热重载但得到相同的异常。重新启动应用程序后,我可以看到预期的变化。因此,如果您在提供程序中,请记住重新启动应用程序以反映更改,您可以再次通过声明这样的列表来避免异常 - List<object> myList=[]

答案 3 :(得分:-1)

以下代码将修复您的错误

1 => List _list = List();

2 => List _list = List();

3 => 列表 _list = [];

答案 4 :(得分:-2)

List<Service>() 方法现在在 flutter 中已弃用,下面的代码将修复您的错误

List<Service> _serviceList = [];