flutter NoSuchMethodError:在null上调用了吸气剂“ lat”

时间:2020-10-31 06:03:28

标签: flutter

通过Google Maps搜索时,将使用返回位置的函数,并调用null。 placeDetail类已初始化并使用,但我不知道问题出在哪里。

void _moveCamera() async {
try{
  GoogleMapController controller = await _mapController.future;
  controller.animateCamera(
    CameraUpdate.newLatLng(
        LatLng(
            placeDetail.lat,
            placeDetail.lng)),
  );
} catch(e) {
  print("error?? -$e");

}

print("noo - ${placeDetail.lat}");
print("noo - ${placeDetail.lng}");

setState(() {
  _markers.add(
      Marker(
    markerId: MarkerId(placeDetail.name),
    position: LatLng(placeDetail?.lat, placeDetail.lng),
    infoWindow: InfoWindow(
        title: placeDetail.name,
        snippet: placeDetail.formattedAddress),
  ));
});
}

json的문제가생각됩니로생각됩니다。 formatted_address:대한민국,几何:{位置:{lat:37.5942526,lng:126.9185857},이렇게이됩니다。

我在这里初始化了它。

void getCurrentPosition() async {
LocationData pos = await location.getLocation();
setState(() {
  currentPos = LatLng(
    pos.latitude,
    pos.longitude,
  );
});


placeDetail = PlaceDetail(lng: pos.longitude, lat: pos.latitude); 
print('google mapff - ${currentPos.latitude}');


GoogleMapController mapCtrl = await _mapController.future;
mapCtrl.animateCamera(
  CameraUpdate.newCameraPosition(
    CameraPosition(
        target: LatLng(
            currentPos.latitude,
            currentPos.longitude),
        zoom: zoomLevel),
  ),
);

}

1 个答案:

答案 0 :(得分:0)

您在哪里定义了placeDetail?您必须确保placeDetail在正在执行的代码范围内。