If 语句在我的 Dart Flutter 代码中被注册为变量?我该如何改变这个?
If statement is being registered as a variable in my Dart Flutter code? How do I change this?
图像中突出显示的文本给我错误,就像我的问题控制台中显示的那样。在处理 if 语句时,我从来没有收到过这类问题,我想知道为什么他们没有注册为 if 语句。在其中一个错误中它说 "if is already defined",但它不是变量。我该如何解决这个问题?它与异步函数有什么关系吗?我挣扎于这些
我正在尝试为我计划在 flutter 应用程序中实现的地图请求用户位置数据,但它不起作用:/我的 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 不应该在代码块之外。
你必须把它放在一个函数中。那就是解释你的错误。
如果您需要更多详细信息,请告诉我。
编辑:仅供参考,flutter 不再需要 "new" 关键字。
解决方案非常简单if
不能成为 class 的成员,您应该在函数内部进行 if
检查。
void doIfChecks(){
// if statements
}
希望对您有所帮助。
图像中突出显示的文本给我错误,就像我的问题控制台中显示的那样。在处理 if 语句时,我从来没有收到过这类问题,我想知道为什么他们没有注册为 if 语句。在其中一个错误中它说 "if is already defined",但它不是变量。我该如何解决这个问题?它与异步函数有什么关系吗?我挣扎于这些
我正在尝试为我计划在 flutter 应用程序中实现的地图请求用户位置数据,但它不起作用:/我的 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 不应该在代码块之外。 你必须把它放在一个函数中。那就是解释你的错误。
如果您需要更多详细信息,请告诉我。
编辑:仅供参考,flutter 不再需要 "new" 关键字。
解决方案非常简单if
不能成为 class 的成员,您应该在函数内部进行 if
检查。
void doIfChecks(){
// if statements
}
希望对您有所帮助。