flutter - 参数类型“双?” 不能分配给参数类型“双”。飞镖(argument_type_not_assignable)
问题描述
我正在尝试获取用户当前位置,但在 l.latitude 和 l.longitude 上出现此错误
参数类型“双?” 不能分配给参数类型“双”。
void _onMapCreated(GoogleMapController _cntlr) {
_controller = _cntlr;
_location.onLocationChanged.listen((l) {
_controller.animateCamera(
CameraUpdate.newCameraPosition(
CameraPosition(
target: LatLng(l.latitude, l.longitude),
zoom: 15,
),
),
);
});
}
解决方案
您得到的错误来自空安全性,该类型double?
意味着它可以是 adouble
或null
,但您的参数只接受 adouble
和 no null
。
为此,您可以通过!
在变量末尾添加 a 来“强制”使用“非空”变量,但这样做时要小心。
CameraPosition(
target: LatLng(l.latitude!, l.longitude!),
zoom: 15,
)
您可以在官方文档中了解更多关于 null-safety 语法和原则的信息:https ://flutter.dev/docs/null-safety
推荐阅读
- python - 在 3D numpy 数组中查找唯一的元组
- c# - 输入字符串的格式不正确 - URI 1116
- java - 如何从 JEditorPane 中获取 BufferedImage?
- javascript - Expo React Native 渲染问题
- javascript - 使用 SVG animateTransform 在 SVG 中旋转已翻译 SVG 中的路径
- python - 使用 popen 在标准输出旁边解析标准错误
- javascript - Javascript - 如何创建多个通过 onclick() 翻转的翻转卡?
- git - 使用 Git 将远程“来源”更改为“上游”
- node.js - 如何将 Multer 与 Express.static("public") 和 EJS 一起用作视图引擎?
- c# - 从列表中选择一个随机项目 C# OOP