api - 将 API 数据从类传递给 GetX 控制器
问题描述
如何将解码后的数据从我的 Api 传递到我的 GetX 控制器?
这是我的“德国”类和我的 fetchGermany() 函数。
Future<Germany> fetchGermany() async {
final response =
await get(Uri.parse('https://api.corona-zahlen.org/germany'));
if (response.statusCode == 200) {
return Germany.fromJson(jsonDecode(response.body));
} else {
throw Exception('Failed to get data');
}
}
class Germany {
int cases;
int deaths;
int recovered;
double weekIncidence;
double casesPer100k;
int casesPerWeek;
Germany(
{required this.cases,
required this.deaths,
required this.recovered,
required this.weekIncidence,
required this.casesPer100k,
required this.casesPerWeek});
factory Germany.fromJson(Map<String, dynamic> json) {
return Germany(
cases: json["cases"],
deaths: json["deaths"],
recovered: json["recovered"],
weekIncidence: json["weekIncidence"],
casesPer100k: json["casesPer100k"],
casesPerWeek: json["casesPerWeek"]);
}
}
这是我目前为空的 GetX 控制器:
class DetailController extends GetxController {
}
所以基本上我只想能够访问这些数据:
cases: json["cases"],
deaths: json["deaths"],
recovered: json["recovered"],
weekIncidence: json["weekIncidence"],
casesPer100k: json["casesPer100k"],
casesPerWeek: json["casesPerWeek"]
解决方案
为什么不直接使用返回的Germany
对象呢?
我认为没有必要在GetxController
这里使用。
可以简单地用作:
Germany _germany;
@override
void initState() {
super.initState();
fetchGermanyData();
}
fetchGermanyData() async {
final fetchedData = await fetchGermany();
setState(() => _germany = fetchedData);
}
/// use ? : operator to show relevant UI in the build method.
推荐阅读
- python - TypeError:函数构建代码之外的操作正在传递“图形”张量
- tkinter - Turtle 和 Tkinter 有什么区别?
- javascript - 新选项卡未在 puppeteer Node js 中打开
- kotlin - 如何将长数据类型写为kotlin中列表的索引?
- html - 如何获取具有特定类后缀的 span 元素的内容?
- android - 反应原生,生成签名的apk时出错
- python - 如何在没有类的情况下从 BeautifulSoup 中的多个跨度获取文本
- javascript - 如何使用这种结构从 javascript 创建 json
- flutter - Flutter 人脸检测
- python-3.x - conda activate env “没有这样的文件或目录”