我正在尝试在urlTemplate上创建动态映射路径,但是Provider抛出此错误。在其他页面上,Provider运行正常,但在此屏幕上无法正常运行。我想知道为什么无法使用Provider.of(context)的问题。有什么想法吗?我整夜都在寻找这个,没有任何运气。
import 'package:flutter/material.dart';
import 'package:flutter_map/flutter_map.dart';
import 'package:latlong/latlong.dart';
import 'package:provider/provider.dart';
import 'package:user_location/user_location.dart';
import '../model/events.dart';
class MapBox extends StatefulWidget {
final GlobalKey<ScaffoldState> scaffoldState = GlobalKey();
@override
_MapBoxState createState() => _MapBoxState();
}
class _MapBoxState extends State<MapBox> {
MapController mapController = MapController();
UserLocationOptions userLocationOptions;
List<Marker> markers = [];
@override
Widget build(BuildContext context) {
final events = Provider.of<Events>(context);
final String maps = "${events.itmaps}";
final String title = "${events.title}";
userLocationOptions = UserLocationOptions(
context: context,
mapController: mapController,
markers: markers,
);
return new Scaffold(
appBar: new AppBar(title: new Text('title')),
body: Stack(
children: <Widget>[
new FlutterMap(
options: new MapOptions(
center: new LatLng(46.185, 12.963),
minZoom: 14.0,
plugins: [
// ADD THIS
UserLocationPlugin(),
],
),
layers: [
new TileLayerOptions(
urlTemplate: maps,
additionalOptions: {
'accessToken':
'<XXX>',
'id': 'mapbox.mapbox-streets-v7'
},
),
MarkerLayerOptions(markers: markers),
userLocationOptions,
],
mapController: mapController,
),
],
),
);
}
}
class Events {
final String imagePath,
title,
itmaps,
Events({
this.title,
this.itmaps,
});
}