Flutter 语句是否在我的Dart FLATTER代码中注册为变量?我如何改变这个?
图像中突出显示的文本给了我错误,就像我的问题控制台中显示的错误一样。我在处理if语句时从未遇到过此类问题,我想知道为什么它们没有注册为if语句。在其中一个错误中,它表示“if已经定义”,但它不是一个变量。我如何解决这个问题?它和异步函数有什么关系吗?我挣扎在这些问题上 我正试图为我计划在颤振应用程序中实现的地图请求用户位置数据,但它不起作用:/我的ifs有问题,我无法解决。Flutter 语句是否在我的Dart FLATTER代码中注册为变量?我如何改变这个?,flutter,dart,geolocation,dart-pub,flutter-test,Flutter,Dart,Geolocation,Dart Pub,Flutter Test,图像中突出显示的文本给了我错误,就像我的问题控制台中显示的错误一样。我在处理if语句时从未遇到过此类问题,我想知道为什么它们没有注册为if语句。在其中一个错误中,它表示“if已经定义”,但它不是一个变量。我如何解决这个问题?它和异步函数有什么关系吗?我挣扎在这些问题上 我正试图为我计划在颤振应用程序中实现的地图请求用户位置数据,但它不起作用:/我的ifs有问题,我无法解决。 未来分配服务(位置loc)异步{ bool servicestatus=wait loc.servicenabled();
未来分配服务(位置loc)异步{
bool servicestatus=wait loc.servicenabled();
返回服务状态;
}
未来分配权限(位置loc)异步{
返回等待loc.hasPermission();
}
未来分配位置(位置loc)异步{
返回等待loc.getLocation();
}
位置=新位置();
var _servicenabled=assignService(位置);
如果(_servicenabled!=true){
_serviceEnabled=分配服务(位置);
如果(!\u服务已启用){
返回;
}
}
var _permissiongrated=分配权限(位置);
如果(_permissiongrated==PermissionStatus.denied)异步{
_permissiongrated=等待位置。requestPermission();
如果(_permissiongrated!=PermissionStatus.grated){
返回;
}
}
var _locationData=分配位置(位置);
更新(上述代码之前的代码):
未来分配服务(位置loc)异步{
bool servicestatus=wait loc.servicenabled();
返回服务状态;
}
未来分配权限(位置loc)异步{
返回等待loc.hasPermission();
}
未来分配位置(位置loc)异步{
返回等待loc.getLocation();
}
位置=位置();
var _servicenabled=assignService(位置);
var _permissiongrated=分配权限(位置);
您在函数外部编写了代码。
只有变量声明可以在函数之外,而不能在代码之外
例如,您可以执行以下操作:
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不应该在代码块之外。
你必须把它放在一个函数中。这就是你的错误的原因
如果你需要更多的细节,请告诉我
编辑:仅供参考,颤振中不再需要“new”关键字。您在函数外部编写了代码。 只有变量声明可以在函数之外,而不能在代码之外 例如,您可以执行以下操作:
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不应该在代码块之外。
你必须把它放在一个函数中。这就是你的错误的原因
如果你需要更多的细节,请告诉我
编辑:仅供参考,颤振中不再需要“new”关键字。解决方案非常简单
如果不能成为类的成员,如果检查函数内部,则应执行
void doIfChecks(){
// if statements
}
希望这将对您有所帮助。如果不能成为类的成员,那么解决方案非常简单,如果检查函数内部,您应该执行
void doIfChecks(){
// if statements
}
希望这对您有所帮助。非常感谢!if语句现在运行。但关于前两个if语句,我遇到了另一个问题。这是错误信息:“一个否定操作符必须有一个静态类型的bool”,我想这是因为它仍然是一个未来,但是我如何改变它呢?非常感谢!if语句现在运行。但关于前两个if语句,我遇到了另一个问题。这是错误信息:“一个否定操作符必须有一个静态类型的bool”,我想这是因为它仍然是一个未来,但是我如何改变它呢?非常感谢!if语句现在运行。但关于前两个if语句,我遇到了另一个问题。这是一条错误消息:“一个否定运算符必须有一个静态类型的bool”,我想这是因为它仍然是一个未来,但我如何改变它?你可以简单地在if语句中的future前面添加wait关键字。我如何将它添加到我的代码中?我也不需要一个异步的吗?而且我已经在等待函数中的值,为什么我需要做两次呢?再次感谢您在分配变量时使用wait _seriveEnabled和_permissionassigned,因此您不需要在if语句中使用wait,您需要使用wait方法返回future。非常感谢!if语句现在运行。但关于前两个if语句,我遇到了另一个问题。这是一条错误消息:“一个否定运算符必须有一个静态类型的bool”,我想这是因为它仍然是一个未来,但我如何改变它?你可以简单地在if语句中的future前面添加wait关键字。我如何将它添加到我的代码中?我也不需要一个异步的吗?而且我已经在等待函数中的值,为什么我需要做两次呢?再次感谢您在分配变量时使用wait _seriveEnabled和_permissionassigned,这样您就不需要在if语句中使用wait,而需要使用wait方法返回future。