Flutter中的提供程序,错误为“在此X小部件上方找不到正确的提供程序”

问题描述 投票:0回答:1

我正在尝试在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,
          ),
        ],
      ),
    );
  }
}

enter image description here

flutter provider
1个回答
0
投票
class Events {
  final String imagePath,
      title,
      itmaps,

  Events({
    this.title,
    this.itmaps,
  });
}
© www.soinside.com 2019 - 2024. All rights reserved.