我有这个错误 The getter 'value' was called on null
i have this error The getter 'value' was called on null
这是我的代码,我没有名为 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" 的值,请大家帮帮我,我需要它....
嗨,我经常遇到这种情况,每次发生这种情况时,我都会传递一个null 参数 在我的一个 函数中 .
best way is to start the debugger and start looking for values that
should not be null.
我会说检查你的 allMarkers List。
希望这对您有所帮助!
以防万一有人遇到同样的问题...
在我将 markerId 添加到我的 Marker() 构造函数之前,我遇到了完全相同的问题。在我的例子中,每个标记都有一个唯一的字符串:
markers.add(标记(
markerId: MarkerId(e['sid']),
位置:LatLng(
e['lat'],
e['lon'],
)));
这是我的代码,我没有名为 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" 的值,请大家帮帮我,我需要它....
嗨,我经常遇到这种情况,每次发生这种情况时,我都会传递一个null 参数 在我的一个 函数中 .
best way is to start the debugger and start looking for values that should not be null.
我会说检查你的 allMarkers List。 希望这对您有所帮助!
以防万一有人遇到同样的问题...
在我将 markerId 添加到我的 Marker() 构造函数之前,我遇到了完全相同的问题。在我的例子中,每个标记都有一个唯一的字符串:
markers.add(标记( markerId: MarkerId(e['sid']), 位置:LatLng( e['lat'], e['lon'], )));