Flutter集成Google Maps包时出现Invalid constant value错误如何修复
修复google_maps_flutter中「Invalid constant value」错误
在使用Flutter的google_maps_flutter包开发地图页面时,代码中onMapCreated: (controller) => _googleMapController = controller,一行出现「Invalid constant value」错误,运行官方示例代码也遇到相同问题。
错误原因与修复方案
错误根源在于你给Scaffold和GoogleMap添加了const修饰符,但onMapCreated的回调需要修改状态类中的_googleMapController变量,属于非常量操作,无法在const组件中执行。
只需移除Scaffold和GoogleMap前的const关键字即可修复:
import 'package:flutter/material.dart'; import 'package:google_maps_flutter/google_maps_flutter.dart'; class MapScreen extends StatefulWidget { @override State<MapScreen> createState() => _MapScreenState(); } class _MapScreenState extends State<MapScreen> { static const _initialCameraPosition = CameraPosition( target: LatLng(36.71228369662267, 3.1805848553156153), zoom: 16.5, ); GoogleMapController? _googleMapController; @override void dispose() { _googleMapController?.dispose(); super.dispose(); } @override Widget build(BuildContext context) { return Scaffold( body: GoogleMap( myLocationButtonEnabled: false, zoomControlsEnabled: false, initialCameraPosition: _initialCameraPosition, onMapCreated: (controller) => _googleMapController = controller, ), ); } }
内容的提问来源于stack exchange,提问作者ELMEHDAOUI Ahmed
相关产品推荐
相关产品推荐

