我正在按照 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”,表示未收到数据或数据处理存在问题。
您要做的第一件事是确定它是“response”还是“response.statusCode”(为空)。 (打印出来)
一旦确定了这一点,您将需要查看“get”的文档,它将告诉您该事物可能为空的情况。
此外,如果您在没有太多编码知识的情况下学习本教程,我建议您从更简单的内容开始。使用异步代码和大型第 3 方库并不是一个好的起点。