Flutter ListView.builder

时间:2020-04-12 14:08:56

标签: flutter dart

类型'_InternalLinkedHashMap'不是的子类型 输入“字符串”

我的代码:

class HomeState extends State<Home> {   List data;

  Future<List> getData() async {
    Network network = Network();
    var response = await network.getData();
    print('response');
    print(response);
    this.setState(() {
      data = response;
    });

    print('data');
    print(data);

//    return "Success!";   }

  @override   void initState(){
    this.getData();   }

  @override   Widget build(BuildContext context){
    return new Scaffold(
      appBar: new AppBar(title: new Text("Listviews"), backgroundColor: Colors.blue),
      body: new ListView.builder(
        itemCount: data == null ? 0 : data.length,
        itemBuilder: (BuildContext context, int index){
          return new Card(
            child: new Text(data[index]),
          );
        },
      ),
    );   } }

1 个答案:

答案 0 :(得分:0)

这是因为network.getData()返回json。文本小部件需要一个字符串。如果只想将每个列表项添加到文本,则只需调用data [index] .toString()。否则,您需要在json中找到所需的值。想象一下,您的JSON具有名称键,因此您应该使用data [index] ['name']语法。