Flutter Futurebuilder在显示快照数据值时显示错误

时间:2020-09-15 14:34:54

标签: flutter dart

我正在应用程序中使用Future builder,并且工作正常,但是当数据加载时以及当我在“文本”小部件中显示它时,就会显示此错误

Class '_InternalLinkedHashMap<String, dynamic>' has no instance getter 'approved_value'.
Receiver: _LinkedHashMap len:31
Tried calling: approved_value

我的代码

class _ClaimsScreenState extends State<ClaimsScreen> {
  @override
  initState() {
    super.initState();
    doSomeAsyncStuff();
  }

  Future<List> doSomeAsyncStuff() async {
    final storage = new FlutterSecureStorage();
    String value = await storage.read(key: 'health_card');
    print(value);

    String url2 =
        'api.com';

    final response2 = await http.get(url2);
    var Data = json.decode(response2.body);
    print(Data);
    var DisplayData = Data["records"];

    return DisplayData;
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        centerTitle: true,
        title: Text('IGI GENERAL INSURANCE'),
      ),
      body: FutureBuilder<List>(
          future: doSomeAsyncStuff(),
          builder: (BuildContext context, AsyncSnapshot<List> snapshot) {
            if (snapshot.hasData) {
              print('ss');
              print(snapshot.data);
              return ListView.builder(
                  itemCount: snapshot.data.length,
                  itemBuilder: (BuildContext context, int index) {
                    return Card(
                      child: Column(
                        children: <Widget>[
                          Row(
                            children: <Widget>[
                              Row(
                                children: <Widget>[
                                  Text('Approved Value:'),
                                  Text(snapshot.data[index].approved_value)
                                ],
                              ),
                              Row(
                                children: <Widget>[
                                  Text('Patient Name:'),
                                  Text(snapshot.data[index].patient_name)
                                ],
                              )
                            ],
                          ),
                          Row(
                            children: <Widget>[
                              Row(
                                children: <Widget>[
                                  Text('Claimed Value:'),
                                  Text(snapshot.data[index].claimed_value)
                                ],
                              ),
                              Row(
                                children: <Widget>[
                                  Text('status:'),
                                  Text(snapshot.data[index].patient_name)
                                ],
                              )
                            ],
                          )
                        ],
                      ),
                    );
                  });
            } else if (snapshot.hasError) {
              return Padding(
                padding: const EdgeInsets.only(top: 16),
                child: Text('Error: ${snapshot.error}'),
              );
            } else {
              return Padding(
                padding: EdgeInsets.only(top: 16),
                child: Text('Awaiting result...'),
              );
            }
          }),
    );
  }
}

我在将来的构建器中使用列表视图构建器,因为这些值位于数组中,并且需要在文本小部件中全部显示

我不确定为什么如果删除该值,仅当我在“文本”小部件中显示值然后显示错误时,它就会显示此错误。

1 个答案:

答案 0 :(得分:1)

snapshot.data[index]返回一个MapMap类没有approved_value吸气剂。您可能打算改用snapshot.data[index]['approved_value']