Flutter 颤振runZonedGuarded防止更改未来的生成器连接状态

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

我有一个奇怪的问题,我正在使用runZonedGuardedMyApp运行到一个区域。在我的一个页面中,我使用了FutureBuilder从互联网上获取数据。如果web服务在FutureBuilder中返回异常,我将显示一个错误按钮以重试再次调用future方法:

  @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);
    }
  }