按下按钮即可返回未来的建造者

时间:2019-08-27 13:09:53

标签: flutter

我有一个按钮,如果按下该按钮,则将返回将来的构建器,这是我的代码。

我已经在网上搜索了一些示例,但是没有运气,我是Flutter开发的新手,并试图通过api调用创建简单的登录信息。

Future<AccessToken>fetchAccessToken() async{final token = await _repository.fetchToKen();
>>return token;

}

onPressed: () {FutureBuilder<AccessToken>(future:bloc.fetchAccessToken(),builder: (context, snapshot) {if (snapshot.hasError) {return Text('Error');} else if (snapshot.hasData) {return Text('data');} else {return `Center`(child: CircularProgressIndicator(),);}},);}

我想在等待api响应时显示进度指示器,但是在收到响应后,未调用future构建器中的构建器。

2 个答案:

答案 0 :(得分:0)

您不能像这样简单地返回一个小部件并将其放置在小部件树中。也许您可以使用条件列表来隐藏和显示Test t3 = DataB(b); 小部件。

FutureBuilder

答案 1 :(得分:0)

您可以执行以下操作:

@override
Widget build(BuildContext context) {
return Column(children: <Widget>[
  FloatingActionButton(onPressed: () {
    setState(() {
      try {
      isLoading = true;
      accessTokenFuture = await fetchAccessToken();
      isLoading = false;
      } catch (_) {
        isLoading = false;
        print('Fetch error');
      }
    });
  }, child: Icon(Icons.add),),
    _buildAsyncInfo(),
],);
}

Widget _buildAsyncInfo() {
 return isLoading ? 
    CircularProgressIndicator() :
    Column(
      children: <Widget>[Text(snapshot.data)],
    );
}