Flutter 颤振runZonedGuarded防止更改未来的生成器连接状态
我有一个奇怪的问题,我正在使用runZonedGuarded将MyApp运行到一个区域。在我的一个页面中,我使用了FutureBuilder从互联网上获取数据。如果web服务在FutureBuilder中返回异常,我将显示一个错误按钮以重试再次调用future方法:Flutter 颤振runZonedGuarded防止更改未来的生成器连接状态,flutter,flutter-futurebuilder,Flutter,Flutter Futurebuilder,我有一个奇怪的问题,我正在使用runZonedGuarded将MyApp运行到一个区域。在我的一个页面中,我使用了FutureBuilder从互联网上获取数据。如果web服务在FutureBuilder中返回异常,我将显示一个错误按钮以重试再次调用future方法: @override void initState() { super.initState(); getMyFuture = provider.MyList(context); } return Futu
@override
void initState() {
super.initState();
getMyFuture = provider.MyList(context);
}
return FutureBuilder<List<Myodle>>(
future: getMyFuture,
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.waiting) {
return Loading();
} else if (snapshot.hasError) {
return TryAgainWidget(
message: snapshot.error.toString(),
onTryAgainClicked: () {
setState(() {
getMyFuture = provider.MyList(context);
});
})
}
Future<List<Myodle>> MyList(BuildContext context) async {
try {
var result = await repository.getList();
if (result.ok) {
if (result.data.serviceGroups.length == 0) {
return Future.error(S.of(context).not_found);
} else {
return result.data.serviceGroups
.map((item) => Myodle(id: item.id, title: item.title))
.toList();
}
} else {
return Future.error(result.error);
}
} catch (e) {
return Future.error(S.of(context).unknown_error);
}
}