函数返回Future <String>的实例而不是String

时间:2019-08-05 20:06:10

标签: flutter dart

我有一个streambuilder,我想计算每个streambuilder卡的距离。如果我在终端中打印它,它将计算距离,但是在屏幕上显示:future 的实例。有解决办法吗?我尝试制作一个变量并运行set状态,但该值对于streambuilder的每个卡都必须不同。

df

1 个答案:

答案 0 :(得分:1)

您将需要使用FutureBuilder。如果您不熟悉此小部件,则可以单击文档的链接,该文档广泛地描述了小部件的功能。

实际上,它看起来像这样:

FutureBuilder(
    future: distanceInmeters(uLat: uLat, uLong: uLong),
    builder: (context, AsyncSnapshot<String> snapshot) {
      if (snapshot.hasError) return Text('${snapshot.error}');
      if (snapshot.hasData) return Text('${snapshot.data}');
      return const CircularProgressIndicator();
    },
  )

之所以需要这样做,是因为您要从异步函数返回String值,因此需要有一些逻辑等待从{{1 }}。