类型错误:无法读取未定义 Flutter 的属性“id”

时间:2021-06-23 03:32:38

标签: node.js json flutter rest dart

对 Flutter 和 Rest 有点陌生,我遇到了这个问题

我想将一些内容发布到我的本地 db.json 文件中。我已经做了一个功能来做到这一点

static Future<Event> addEvent(Event event) async {
  final json = await Rest.post('events', data:event);
  return Event.fromJson(json);
}

这称为 Post 请求

static Future post(String endpoint, {dynamic data}) async {
    final response = await http.post(Uri.parse('$_baseUrl/$endpoint'),
        headers: {'Content-Type': 'application/json'}, body: jsonEncode(data));

    if (response.statusCode == 201) {
      return jsonDecode(response.body);
    }
    throw response;
  }

我的 JSON 文件或多或少是这样的

"events": [
    {
      "event_id": 1,
      "event_title": "Event title",
      "event_details": "event details",
      "event_date": "2020-05-05",
      "event_category": "Human Dev"
    }
  ]

并且我收到错误 TypeError: Cannot read property 'id' of undefined,如果我将 event_id 属性更改为 id,它会正常工作。

所以...是的,任何建议将不胜感激。不介意我是否必须将名称从 event_id 更改为 id 虽然我只是好奇它背后是否有解决方案

谢谢

1 个答案:

答案 0 :(得分:0)

您的 Json 响应是

"events": [
{
  "id": 1,
  "event_title": "Event title",
  "event_details": "event details",
  "event_date": "2020-05-05",
  "event_category": "Human Dev"
}

]

“event_id”未包含在该响应中。这就是该错误的原因。 http 包无法获取名为“event_id”的键的值。