gpt4 book ai didi

android - 如何使用异步返回字符串

转载 作者:行者123 更新时间:2023-12-03 04:23:10 29 4
gpt4 key购买 nike

我正在努力从异步方法返回字符串值。

这是我的实用程序类:

class Utilities {

Future<PackageInfo> getPackageInfo() async {
PackageInfo packageInfo = await PackageInfo.fromPlatform();
return packageInfo;
}

String getVersion() {
String version;
getPackageInfo().then((PackageInfo pi) {
version = pi.version;
});
return version;
}

}

这是我的UI,我在其中调用getVersion方法:
class abc extends StatelessWidget {

Utilities _utilities = new Utilities();

@override
Widget build(BuildContext context) {
...
Text(_utilities.getVersion()),
...

}

我总是在Text()小部件上收到空值错误。

我究竟做错了什么?

最佳答案

您将返回正常的String,而应将其包装在Future中:

Future<String> getVersion() async => getPackageInfo().then((PackageInfo pi) => pi.version);

然后 Text小部件变为:
FutureBuilder<String>(
future: getVersion(),
builder: (BuildContext context, AsyncSnapshot<String> snapshot) {
if(snapshot.connectionState==ConnectionState.waiting)
return CircularProgressIndicator();
else if(snapshot.connectionState==ConnectionState.done && snapshot.hasData)
return Text(snapshot.data);
//handle other connection statuses
}
),

关于android - 如何使用异步返回字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61373114/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com