我有一个按钮,如果按下该按钮,则将返回将来的构建器,这是我的代码。
我已经在网上搜索了一些示例,但是没有运气,我是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构建器中的构建器。
答案 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)],
);
}