简体   繁体   English

我收到 flutter 类型错误“响应”不是“FutureOr”的子类型<string> '</string>

[英]I am getting a flutter type error 'Response' is not a subtype of 'FutureOr<String>'

I am tying to parse a json object in flutter but i cant get it to show on the screen.我想在 flutter 中解析 json object 但我无法让它显示在屏幕上。 I get an error saying type 'Response' is not a subtype of 'FutureOr'.我收到一条错误消息,提示“响应”类型不是“FutureOr”的子类型。 This is the source code这是源代码


    Future<String> loadList() async {
      return await Network().getData('data');
    }
    
    class _IndexState extends State<Index> {
      bool _loading = true;
    
      Future loadList() async {
        String jsonString = await loadList();
        final response = json.decode(jsonString);
        Prospects prospects = new Prospects.fromJson(response);
        print(
            '${prospects.success} - ${prospects.data[0].id} - ${prospects.data[0].firstname} - ${prospects.data[0].lastname} - ${prospects.data[0].amountSpeculated}');
        return prospects;
      }
    
      @override
      Widget build(BuildContext context) {
        return Scaffold(
            appBar: AppBar(
              title: Text(_loading ? 'Loading ' : 'JSON ListView in Flutter'),
            ),
            body: Center(
              child: FutureBuilder<String>(
                future: loadList(),
                builder: (context, snapshot) {
                  if (snapshot.hasData) {
                    return Text(snapshot.data);
                  } else if (snapshot.hasError) {
                    return Text("${snapshot.error}");
                  }
                  return CircularProgressIndicator();
                },
              ),
            ));
      }
    }

  1. Your Future is loadList() instead of _loadList() :你的未来是loadList()而不是_loadList()
body: Center(
  child: FutureBuilder<String>(
    future: loadList(),
    builder: (context, snapshot) {
      if (snapshot.hasData) {
        return Text(snapshot.data);
      } else if (snapshot.hasError) {
        return Text("${snapshot.error}");
      }
      return CircularProgressIndicator();
    },
  ),
)
  1. Your Future is defined as a Future ( Future<dynamic> ) instead of Future<String> :您的 Future 被定义为Future ( Future<dynamic> ) 而不是Future<String>
Future<String> loadList() async {
  String jsonString = await _loadList();
  final response = json.decode(jsonString);
  Prospects prospects = new Prospects.fromJson(response);
  return '${prospects.success} - ${prospects.data[0].id} - ${prospects.data[0].firstname} - ${prospects.data[0].lastname} - ${prospects.data[0].amountSpeculated}';
}

Full source code完整的源代码

import 'package:flutter/material.dart';
import 'package:flutter_hooks/flutter_hooks.dart';

void main() {
  runApp(
    MaterialApp(
      debugShowCheckedModeBanner: false,
      title: 'Flutter Demo',
      home: HomePage(),
    ),
  );
}

class HomePage extends HookWidget {
  Future<String> loadList() async {
    await Future.delayed(Duration(seconds: 2));
    return ('My String');
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: FutureBuilder<String>(
          future: loadList(),
          builder: (context, snapshot) {
            if (snapshot.hasData) {
              return Text(snapshot.data);
            } else if (snapshot.hasError) {
              return Text("${snapshot.error}");
            }

            // By default, show a loading spinner.
            return CircularProgressIndicator();
          },
        ),
      ),
    );
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Flutter Dart http 类型响应不是字符串错误类型的子类型 - Flutter Dart http Type Response is not a subtype of type String error 输入&#39;_InternalLinkedHashMap<String, dynamic> &#39; 不是类型 &#39;FutureOr 的子类型<List<dynamic> &gt;&#39; - type '_InternalLinkedHashMap<String, dynamic>' is not a subtype of type 'FutureOr<List<dynamic>>' 为什么我在 Flutter 中解析 JSOn 数据时会收到此错误“未处理的异常:类型 &#39;double&#39; 不是类型 &#39;int&#39; 的子类型”? - Why am I getting this error “Unhandled Exception: type 'double' is not a subtype of type 'int'” while parsing JSOn data in flutter? 键入&#39;_InternalLinkedHashMap<String, dynamic> &#39; 不是类型 &#39;FutureOr 的子类型<List<dynamic> &gt; - type '_InternalLinkedHashMap<String, dynamic>' is not a subtype of type 'FutureOr<List<dynamic>> _InternalLinkedHashMap<string, dynamic> ' 不是 'FutureOr 类型的子类型<list<dynamic> > </list<dynamic></string,> - _InternalLinkedHashMap<String, dynamic>' is not a subtype of type 'FutureOr<List<dynamic>> 获取错误类型&#39;_InternalLinkedHashMap<String, dynamic> &#39; 不是 &#39;Iterable 类型的子类型<dynamic> &#39; 在 Flutter 中从 API 获取数据时 - Getting error type'_InternalLinkedHashMap<String, dynamic>' is not a subtype of type 'Iterable<dynamic>' while fetching data from API in flutter Flutter 错误:“int”类型不是类型转换中“String”类型的子类型 - Flutter error: type 'int' is not a subtype of type 'String' in type cast 在 flutter 中解码字符串 json 时出错,“字符串类型不是 Map 类型的子类型” - Error decoding string json in flutter, “type String is not subtype of type Map” 无法将 JSON 数据解析到 listview(_TypeError (type '_InternalLinkedHashMap<string, dynamic> ' 不是类型 'FutureOr 的子类型<list<dynamic> &gt;') </list<dynamic></string,> - Can't parse JSON data to listview(_TypeError (type '_InternalLinkedHashMap<String, dynamic>' is not a subtype of type 'FutureOr<List<dynamic>>') flutter 上的错误:键入“列表”<dynamic> ' 不是类型 'String' 的子类型</dynamic> - Error on flutter : type 'List<dynamic>' is not a subtype of type 'String'
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM