我做 initPlatformState
......一个异步函数,用于检测模拟位置,并在处理完后,将其转换为模拟位置。initPlatformState
我需要做一些事情......但问题是......因为......我需要做一些事情。initPlatformState
异步工作,而我没有将 initPlatformState
里面 initState
... initPlatformState
会工作之前,它还没有完成......有一个方法来等待。initPlatformState
已经做了做的过程,然后我会做一些其他的事情,这里是我的代码
bool canMockLocation=false;
initPlatformState() async {
if (!mounted) return;
try {
canMockLocation = await TrustFall.canMockLocation;
} catch (error) {
print(error);
}
setState(() {
canMockLocation = canMockLocation;
});
}
_getData() async {
setState(() {
load = true;
});
initPlatformState();
setState(() {
load = false;
});
if(canMockLocation){
show alert;
}else{
print("check");
}
这里是我的小部件
Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
loadLocation
? Text("Loading...")
: Text("Success")
.....
在调用这个方法的地方加上 await, await 将保持位置直到函数过程没有完成。
await initPlatformState();