【问题标题】:Class has no instance getter 'length'类没有实例获取器“长度”
【发布时间】:2020-11-05 17:12:18
【问题描述】:

我正在尝试创建一个列表,其中包含从屏幕上的远程服务器加载的项目。

 Container(
              child: FutureBuilder(
                future: fetchClinicas(),
                builder: (context, snapshot) {
                  if (snapshot.hasData) {
                    return ListView.builder(
                      itemCount: snapshot.data.length,
                      shrinkWrap: true,
                      itemBuilder: (BuildContext contex, index) {
                        Clinica clinica = snapshot.data[index];
                        return Text(
                          '${clinica.nombreClinica}',
                          style: TextStyle(fontSize: 20),
                        );
                      },
                    );
                  }
                  return CircularProgressIndicator();
                },
              ),
            ),

这里有两个文件:

clinica-api.dart

Future<List<Clinica>> fetchClinicas() async {
  String url ="https://.../get_clinicas.php";
  final response = await http.get(url);
  return clinicaFromJson(response.body);

}

还有模型类clinica.dart

import 'dart:convert';

List<Clinica> clinicaFromJson(String str) => List<Clinica>.from(json.decode(str).map((x) => Clinica.fromJson(x)));

String clinicaToJson(List<Clinica> data) => json.encode(List<dynamic>.from(data.map((x) => x.toJson())));

class Clinica {
  Clinica({
    this.idClinica,
    this.nombreClinica,
    this.direccionClinica,
    this.telClinica,
    this.emailClinica,
    this.codClinica,
    this.fechaIngresoClinica,
    this.logoClinica,
  });

  String idClinica;
  String nombreClinica;
  String direccionClinica;
  String telClinica;
  String emailClinica;
  String codClinica;
  DateTime fechaIngresoClinica;
  String logoClinica;

  factory Clinica.fromJson(Map<String, dynamic> json) => Clinica(
    idClinica: json["id_clinica"],
    nombreClinica: json["nombre_clinica"],
    direccionClinica: json["direccion_clinica"],
    telClinica: json["tel_clinica"],
    emailClinica: json["email_clinica"],
    codClinica: json["cod_clinica"],
    fechaIngresoClinica: DateTime.parse(json["fecha_ingreso_clinica"]),
    logoClinica: json["logo_clinica"],
  );

  Map<String, dynamic> toJson() => {
    "id_clinica": idClinica,
    "nombre_clinica": nombreClinica,
    "direccion_clinica": direccionClinica,
    "tel_clinica": telClinica,
    "email_clinica": emailClinica,
    "cod_clinica": codClinica,
    "fecha_ingreso_clinica": "${fechaIngresoClinica.year.toString().padLeft(4, '0')}-${fechaIngresoClinica.month.toString().padLeft(2, '0')}-${fechaIngresoClinica.day.toString().padLeft(2, '0')}",
    "logo_clinica": logoClinica,
  };
}

我的问题是我在行遇到异常:

 itemCount: snapshot.data.length,

这里是异常输出:

════════ Exception caught by widgets library ═══════════════════════════════════════════════════════
The following NoSuchMethodError was thrown building FutureBuilder<List<Clinica>>(dirty, state: _FutureBuilderState<List<Clinica>>#8b603):
Class 'List<Clinica>' has no instance getter 'lenght'.
Receiver: Instance(length:3) of '_GrowableList'

【问题讨论】:

  • 'lenght' 对吗?我认为有一个拼写错误的“长度”。
  • @KuKu,你是对的,这就是问题所在,对不起我的英语
  • @KuKu,您介意将您的评论作为我问题的答案吗?还是我应该删除问题?

标签: flutter dart


【解决方案1】:

“长度”似乎有一个拼写错误。 我认为“长度”是对的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-22
    • 2020-03-09
    • 1970-01-01
    • 2020-10-21
    • 2020-09-24
    • 2021-04-27
    相关资源
    最近更新 更多