Flutter FutureBuilder:如何将数据显示为文本

时间:2019-11-17 03:47:31

标签: flutter

我是Flutter Futures的新手。我想从API获取一个数字,然后在Flutter中显示该数字:

        FutureBuilder(
          future: http.get('http://match.palm.pink/v1/count'),
          builder: (context, snapshot) {
            if (snapshot.hasError)
              return Text('Error: ${snapshot.error}');
            else 
              return Text('Result: ${snapshot.data}');
          }

但是,Flutter应用程序会显示

Result: Instance of 'Response'

我只是在检索一个数字,不想创建一个类来将该数字转换为数字。我应该使用FutureBuilder还是使用Future<whatever> method async { var output = await http.get(url) }技术?

3 个答案:

答案 0 :(得分:1)

您可以通过如下方式访问snapshot.data的正文来做到这一点:

FutureBuilder(
    future: http.get('http://match.palm.pink/v1/count'),
    builder: (context, snapshot) {
        if (snapshot.hasError)
            return Text('Error: ${snapshot.error}');
        else 
            return Text('Result: ${snapshot.data.body}');
    }
)

答案 1 :(得分:0)

如果该网址返回JSON文件,则可以通过${snapshot.data['key']}

访问

答案 2 :(得分:0)

    FutureBuilder(
      future: http.get('http://192.168.1.2:3000/v1/count'),
      builder: (context, snapshot) {
        if (snapshot.hasError)
          return Text('Error: ${snapshot.error}');
        if(snapshot.hasData)
          return Text('Result: ${snapshot.data['Yourkey']}');
      }

您需要提供Firebase集合中指向您数据的密钥