0

我正在努力了解如何在 Flutter 中解决这些类型错误。

我正在向使用以下 JSON 响应的服务器发出 HTTP 请求:

{
  "message": "The given data was invalid.",
  "errors": {
    "email": ["Email is required"]
  }
}

我正在从响应中分配数据,如下所示:

Future login(String email, String password) async {
    ...
    Map<String, dynamic> data = json.decode(response.body);

    final List<String> emailErrors = data['errors']['email'];
    final List<String> passwordErrors = data['errors']['password'];
}

一旦我尝试这样做,我会收到以下错误:

未处理的异常:“列表”类型不是“列表”类型的子类型

如果您尝试为任何类型设置类型注释,似乎使用类型dynamic几乎会引发错误。如何解决?

4

1 回答 1

1

您会收到此错误,因为data['errors']['email']返回 a List<dynamic>

您必须将项目转换为String这样:

final List<String> emailErrors = data['errors']['email'].cast<String>()

于 2020-11-08T15:03:39.323 回答