【发布时间】:2022-01-25 13:19:49
【问题描述】:
我正在调用异步方法 getMyLocation() 以在我的 initState() 中获取我的当前位置。该方法可能需要一段时间...
我想了解 initState() 在这些情况下的行为。该方法是否仍然在 build() 渲染时在后台执行,或者 initState() 是否超时,因为它需要在 build() 渲染之前完成?
在我的 build() 中,我有一个语句检查我的纬度是否为空,在这种情况下,我返回一个 Loading() 小部件。有时 Screen() 渲染,有时 Loading() 无限期地进行。我假设有时 getMyLocation() 在 initState() 期间成功执行,有时它会超时?
@override
void initState() {
super.initState();
final userData = Provider.of<MyUser>(context, listen: false);
final myUser = userData.getUser();
userData.getMyLocation();
}
getMyLocation() async {
_myUser.longitude = await getCurrentLongitude();
_myUser.latitute = await getCurrentLatitude();
notifyListeners();
}
Widget build(BuildContext context) {
final userData = Provider.of<MyUser>(context);
final myUser = userData.getUser();
myUser.latitude == null?
return Loading()
: return Screen()
【问题讨论】:
标签: flutter