flutter - 将数据获取到appBar-Flutter

标签 flutter dart

我正在尝试将数据获取到Appbar的api,但是卡在await / async中
我正在尝试做的是:

getUserName(id) async {
  SharedPreferences prefs = await SharedPreferences.getInstance();

  String token;
  token = prefs.get('Token');
  String url = "https://apiurl";
  http.post(
    url,
    headers: {'authorization': 'bearer' + token},
    body: {'thread': id.toString()},
  ).then((response) {
    print("Response body: ${response.body}");
    return response.body;
  });
}
我在尝试构建时将其称为:
appBar: AppBar(
        title: Text(getUserInfo(widget.id)),    
        ....
但是我最终得到了:
future 动态的实例
我了解我应该以某种方式等待结果。但是,如果尝试尝试,则不接受等待:
await getUserInfo(widget.id);

最佳答案

首先等待您对http.post的 call

Future<String> getUserName(id) async {
  SharedPreferences prefs = await SharedPreferences.getInstance();

  String token;
  token = prefs.get('Token');
  String url = "https://apiurl";
  var response = await http.post(
    url,
    headers: {'authorization': 'bearer' + token},
    body: {'thread': id.toString()},
  );

  return response.body
}
然后可以使用这样的东西
// Declare _userInfo at state class level and run this on build or initState
if (_userInfo == null) {
  getUserInfo(id).then((userInfo) => setState(() => _userInfo = userInfo));
}
然后
appBar: AppBar(
    title: Text(_userInfo),

关于flutter - 将数据获取到appBar-Flutter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62506588/

相关文章:

Flutter未编译错误错误: The method 'CustomStyle.copyWith' has fewer named arguments than those of overridden method 'TextStyle.copyWith'

flutter - 如何 catch 文本字段小部件上的打字速度?

flutter - flutter 更改FlatButton textColor

dictionary - 如何使用 map 触发异步请求但获得汇总结果?

dart - 列表的反向迭代器?

flutter - 在vscode中使用fvm更改flutter版本,但flutter版本不起作用?

Flutter ListView 在 setState 之后不更新,使用 StatefulWidget 作为项目

android - Flutter 中的控制台消息

flutter - 当我放置视频播放器时,手势检测器未检测到视频播放器屏幕是它的子项

firebase - 将 Flutter 对象与列表映射到 Firebase 实时数据库