flutter - 当我调用一个函数“'Future”时,我在颤动中遇到了这个问题'不能分配给参数类型'String'"
问题描述
我对 Dart 中的变量有这个问题,我想从我的函数中读取字符串值,read()
但我收到了这个错误:
参数类型“Future”不能分配给参数类型“String”
这是我的功能代码:
read() async {
final prefs = await SharedPreferences.getInstance();
String key = 'Code_Abo';
String value = prefs.get(key ) ?? 0;
// String rr = value.toString();
//print(value.toString());
return(value);
}
在这里我想使用返回的值(作为字符串):
QrImage(
data: read(),
version: QrVersions.auto,
size: 250.0,
padding: EdgeInsets.only(left: 75.0, right: 75.0),
// embeddedImage: AssetImage('assets/logo.png'),
),
提前谢谢你...
解决方案
read
返回一个未来,如果你想使用它返回的字符串值,你需要等待未来完成。如果要在小部件中使用它,请使用FutureBuilder
:
FutureBuilder<String>(
future: read(),
builder: (_, snapshot) {
if (!snapshot.hasData) {
// Return something to show the future hasn't completed yet
return CircularProgressIndicator();
}
return QrImage(
data: snapshot.data,
version: QrVersions.auto,
size: 250.0,
padding: EdgeInsets.only(left: 75.0, right: 75.0),
// embeddedImage: AssetImage('assets/logo.png'),
);
},
),
推荐阅读
- angularjs - 根据AngularJS 1.x中先前下拉列表中的值生成下拉列表的动态编号
- r - R排除日期列表不起作用
- abap - 插入时启用热点单元 F4。可能的?
- java - 在 Java 中创建信任库
- c# - IMemoryCache 未在类库中实例化
- amazon-web-services - kubernetes 将主机 dns 名称获取到 kafka 广告主机的容器
- wordpress - 使用添加媒体添加图像链接
- mongodb - 在 expressjs、mongodb、inversifyjs 中的 db 操作回调之前获得 204 响应
- excel - 无法选择/取消选择切片器上的项目 - VBA
- python - Python Pandas 根据条件将列字符串切成一个字符