如何解决Flutter中使用GetX获取数据时出现“null”错误?

问题描述 投票:0回答:1

我正在按照 Flutter 教程使用 GetX 包从后端获取数据。尽管遵循了教程步骤,但我无法从后端检索数据,相反,我在终端中收到“null”错误。以下是我根据教程进行的实现,以及我观察到的响应。

代码:

// Flutter code: DataController.dart
import 'package:flutter_golang_yt/services/service.dart';
import 'package:get/get.dart';

class DataController extends GetxController {
  DataService service = DataService();
  bool _isLoading = false;
  List<dynamic> _myData = [];

  Future<void> getData() async {
    _isLoading = true;
    Response response = await service.getData();
    _isLoading = false;
    if (response.statusCode == 200) {
      _myData = response.body;
      print("Data received: $_myData");
    } else {
      print("Failed to fetch data: Status code ${response.statusCode}");
    }
    update();
  }
}

// Service code: services.dart
import 'package:get/get.dart';

class DataService extends GetConnect implements GetxService {
  Future<Response> getData() async {
    return await get("http://localhost:3306/gettasks", headers: {
      'Content-Type': 'application/json; charset=UTF-8'
    });
  }
}

错误描述:

当我运行应用程序时,预期结果是从后端接收任务列表并打印它们。然而,我的 Flutter 终端中的输出只是“null”,表示未收到数据或数据处理存在问题。

flutter dart android-studio go flutter-getx
1个回答
0
投票

您要做的第一件事是确定它是“response”还是“response.statusCode”(为空)。 (打印出来)

一旦确定了这一点,您将需要查看“get”的文档,它将告诉您该事物可能为空的情况。

此外,如果您在没有太多编码知识的情况下学习本教程,我建议您从更简单的内容开始。使用异步代码和大型第 3 方库并不是一个好的起点。

© www.soinside.com 2019 - 2024. All rights reserved.