flutter - 如果语句在我的 Dart Flutter 代码中被注册为变量?我该如何改变?
问题描述
图像中突出显示的文本给了我类似问题控制台中显示的错误。在处理 if 语句时,我从未收到过这类问题,我想知道为什么它们没有注册为 if 语句。在其中一个错误中,它说“如果已经定义”,但它不是变量。我该如何解决这个问题?它与异步功能有什么关系吗?我与这些斗争
我正在尝试为我计划在颤振应用程序中实施的地图请求用户位置数据,但它不起作用:/我无法解决的 ifs 有问题。
Future<bool> assignService(Location loc) async {
bool servicestatus = await loc.serviceEnabled();
return servicestatus;
}
Future<PermissionStatus> assignPermission(Location loc) async {
return await loc.hasPermission();
}
Future<LocationData> assignLocation(Location loc) async {
return await loc.getLocation();
}
Location location = new Location();
var _serviceEnabled = assignService(location);
if (_serviceEnabled != true) {
_serviceEnabled = assignService(location);
if (!_serviceEnabled) {
return;
}
}
var _permissionGranted = assignPermission(location);
if (_permissionGranted == PermissionStatus.denied) async{
_permissionGranted = await location.requestPermission();
if (_permissionGranted != PermissionStatus.granted) {
return;
}
}
var _locationData = assignLocation(location);
更新(上面的代码):
Future<bool> assignService(Location loc) async {
bool servicestatus = await loc.serviceEnabled();
return servicestatus;
}
Future<PermissionStatus> assignPermission(Location loc) async {
return await loc.hasPermission();
}
Future<LocationData> assignLocation(Location loc) async {
return await loc.getLocation();
}
Location location = Location();
var _serviceEnabled = assignService(location);
var _permissionGranted = assignPermission(location);
解决方案
您在函数之外编写代码。只有变量声明可以在函数之外,而不是代码。
例如,您可以这样做:
void StartService() {
if (_serviceEnabled != true) {
_serviceEnabled = assignService(location);
if (!_serviceEnabled) {
return;
}
if (_permissionGranted == PermissionStatus.denied) async{
_permissionGranted = await location.requestPermission();
if (_permissionGranted != PermissionStatus.granted) {
return;
}
}
}
if 不应该在代码块之外。你必须把它放在一个函数中。这就是解释你的错误。
如果您需要更多详细信息,请告诉我。
编辑:仅供参考,颤振中不再需要“新”关键字。
推荐阅读
- javascript - 使用 $push 更新流星到单个记录上尚不存在的数组
- python - 我如何制作情节图例,向我展示我正在处理的每个变量?
- azure - 如何将域名从一个 Azure 环境迁移到另一个环境
- powerbi - DAX 查询从多个表的多个列中获取不同的值
- javascript - 无法从字符串中的 html 中删除一个元素
- java - Java 11 HttpClient 不允许以冒号开头的标头
- python - 如何在 python3 文本冒险中为每个房间实现项目?
- php - 限制 Api Calls,api 在 php 模板中
- angular - 对 object-set-all-values-to 使用 ES 模块导入时出错
- java - 用错误的 IV 大小解密 AES