[英]How to fetch a single data from api using getX in flutter
我正在開發一個 flutter 項目。
我已經構建了 controller、model 和視圖。
這是我的 controller 代碼
//import 'package:flutter/material.dart';
import 'dart:convert';
import 'package:get/get.dart';
import '../model/answers_model.dart';
import 'package:http/http.dart' as http;
class AnswersController extends GetxController {
var isLoading = false.obs;
AnswersModel? _answersModel;
get assets => null;
fetchData() async {
try {
isLoading(true);
http.Response response =
await http.get(Uri.tryParse('https://example.com/k=8463')!);
if (response.statusCode == 200) {
var result = jsonDecode(response.body);
_answersModel = AnswersModel.fromJson(result);
} else {
print('error fecting answer');
}
} catch (e) {
print('error while getting data is $e');
} finally {
isLoading(false);
}
}
}
下面是我的 model 代碼( https://www.dripcoding.com/json-to-dart/ )
class AnswersModel {
AnswersModel({
required this.status,
required this.title,
});
String? status;
String? title;
AnswersModel.fromJson(Map<String, dynamic> json){
status = json['status'];
title = json['title'];
}
Map<String, dynamic> toJson() {
final _data = <String, dynamic>{};
_data['status'] = status;
_data['title'] = title;
return _data;
}
}
然后在我看來,我試圖顯示狀態和標題
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import '../controller/answers_controller.dart';
void main() {
runApp(GetMaterialApp(home: MyApp()));
}
class MyApp extends StatelessWidget {
AnswersController answersController = Get.put(AnswersController());
@override
Widget build(BuildContext context){
return Scaffold(body: ListView.builder(
itemCount: answersController._answersModel?.assets!.lenght ?? 0,
itemBuilder: (context, index){
return ListTile();
}),);
}
}
但是我上癮了,請我幫助我了解如何顯示從 api 檢索到的值,而不是作為列表,而是作為單個數據
首先你必須在控制器的吸氣劑中返回你的_answersModel
作為
獲取資產 => _answersModel; // ---> 你在這里返回 null
現在您可以使用answersController.assets[index]."value here"
中的值,在您的情況下,您可以簡單地獲取數據為
ListTile(
title: Text(answersController.assets[index].title.toString()),
);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.