我有此错误在null上调用getter“值”

时间:2019-12-09 18:28:41

标签: flutter dart google-maps-markers

这是我的代码,我没有名为value的变量 这是我从数据库中获取的功能:

 getMarker() async {
//  List list = List();
String myUrl = "http://10.25.20.30:5000/api/markers";
var response = await http.get(myUrl,
    headers: {
      'Accept': 'application/json',

    });

return response.body;

我的回复正文如下:[{“ log”:“-7.939147”,“ lag”:“ 32.222754”},{“ log”:“-8.004948”,“ lag”:“ 31.621737”} ,{“ log”:“-8.017168”,“ lag”:“ 31.636198”}]

这是从我的json文件中获取标记的代码

  Future<String> loadString() async =>     
    await databaseHelper.getMarker();  
    List<Marker> allMarkers = [];             

   void initState() {                        

   super.initState();                      
   _future = loadString();                 
   }

我要在这里建立标记:

       return Container(                                                                                                                        
  height: MediaQuery                                                                                                                     
      .of(context)                                                                                                                       
      .size                                                                                                                              
      .height,                                                                                                                           
  width: MediaQuery                                                                                                                      
      .of(context)                                                                                                                       
      .size                                                                                                                              
      .width,                                                                                                                            


  child:  FutureBuilder(                                                                                                                 
    future:  _future,                                                                                                                    
     builder: (context, AsyncSnapshot snapshot) {                                                                                        
if (!snapshot.hasData) {                                                                                                                 
return CircularProgressIndicator();                                                                                                      
}                                                                                                                                        
   List<dynamic> parsedJson = jsonDecode(snapshot.data);                                                                                 

    allMarkers = parsedJson.map((element) {                                                                                              
            return Marker(                                                                                                               

                position: LatLng(double.parse(element['log']),double.parse(element['lag'])));                                             
          }).toList();                                                                                                                   
    return GoogleMap(                                                                                                                    
mapType: MapType.normal,                                                                                                                 
initialCameraPosition: CameraPosition(                                                                                                   
target: LatLng(double.parse(userLocation.latitude.toString()),                                                                           
double.parse(userLocation.longitude.toString())), zoom: 12),                                                                              
onMapCreated: (GoogleMapController controller) {                                                                                         
_controller.complete(controller);                                                                                                        
},                                                                                                                                       
markers:Set.from(allMarkers),                                                                                                            


);                                                                                                                                        
}                                                                                                                                        
  )                                                                                                                                       
);                                                                                                                                        

}

我不知道问题出在哪里,因为我没有任何叫做“ value”的值,所以pllz帮我,我需要它...。

2 个答案:

答案 0 :(得分:0)

嗨,这件事在我身上发生了很多,每次发生时,我通过其中一个 参数功能。

  

最好的方法是启动调试器,然后开始寻找   不能为空

我会说检查您的所有标记列表。 希望这会有所帮助!

答案 1 :(得分:0)

以防万一有人遇到同样的问题...

在将markerId添加到Marker()构造函数之前,我遇到了完全相同的问题。就我而言,每个标记都有一个唯一的字符串:

markers.add(Marker( markerId:MarkerId(e ['sid']), 位置:LatLng( e ['lat'], e ['lon'], )));