我正在使用Ffltter,并试图从我之前设置的Shared_Preferences中获取一个值,并将其显示在文本小部件中.但是我得到的是Future<String>的实例,而不是值.以下是我的代码:

Future<String> getPhone() async {
    final SharedPreferences prefs = await SharedPreferences.getInstance();
    final String patientPhone = prefs.getString('patientPhone').toString();
        print(patientPhone);

    return patientPhone;
  }

Future<String> phoneOfPatient = getPhone();

Center(child: Text('${phoneOfPatient}'),))

推荐答案

prefs.getString(之前缺少await,使用setState()代替返回值.build()不能用await.

  String _patientPhone;

  Future<void> getPhone() async {
    final SharedPreferences prefs = await SharedPreferences.getInstance();
    final String patientPhone = await /*added */ prefs.getString('patientPhone');
    print(patientPhone);

    setState(() => _patientPhone = patientPhone);
  }

  build() {
    ...
    Center(child: _patientPhone != null ? Text('${_patientPhone}') : Container(),))
  }

Dart相关问答推荐

如何在Flutter中制作视频缩略图?

在 Flutter 中从树中临 timeshift 除时保留小部件状态

Flutter/Dart 为 Google Maps Marker 添加自定义点击事件

如何从 Dart 中的映射中过滤空值

从 PopupMenuItem 中删除填充(overflow menu)

Flutter|Dart 创建匿名类

设置文本以匹配Flutter中的列宽

Flutter插件和Flutter模块之间有什么区别?

将Dart嵌入到应用程序中

Flutter 错误:The _ScaffoldLayout custom multichild layout delegate forgot to lay out the following child

单击 TextField 小部件时 Flutter 小部件重建

使用 dart 下载文件

dart 中隐式转换运算符的语法是什么?

从 Dart 调用 javascript

如何从 Dart 中的 forEach 循环返回?

具有 Maps 的 Null 感知运算符

Dart 的输出是什么样的?

如何初始化构造函数主体中的最终字段?

如何在 Dart 中获取文件名?

如何在 Dart 中执行运行时类型判断?