gpt4 book ai didi

flutter - 应用程序在 Debug模式下工作但不在 Release模式下

转载 作者:IT王子 更新时间:2023-10-29 07:03:38 25 4
gpt4 key购买 nike

应用程序的 Release模式无法从 url 中获取数据,因此屏幕只显示“正在加载...”

我正在使用 package:http/http.dart 包来获取数据。

这是我的 State 类的样子:

class HomeState extends State<Home>{

Future<List<Coin>> getCoinList() async {
var url = '<some_url>';
var response = await http.get(url);
var jsonData = json.decode(response.body);
//iterate through jsonData, create a list and return
}

Future<void> updateData() async{
setState((){});
}

@override
Widget build(BuildContext context) {
return RefreshIndicator(child: FutureBuilder(
future: getCoinList(),
builder: (BuildContext context, AsyncSnapshot snapshot) {
if (snapshot.data == null) {
return Center(
child: Container(
child: Text("Loading..."),
),
);
} else {
return ListView.builder(
itemCount: snapshot.data.length,
itemBuilder: (BuildContext context, int position) {
String sign = '-';
MaterialColor signColor = Colors.red;
if(double.parse(snapshot.data[position].percent_change_1h) > 0.0){
sign = '+';
signColor = Colors.green;
}
return Card(
child: ListTile(
title: Text(snapshot.data[position].name,style: TextStyle(fontWeight: FontWeight.bold),),
subtitle: Text(snapshot.data[position].price_usd,style: TextStyle(color: signColor),),
trailing: Text(sign+snapshot.data[position].percent_change_1h+"%",style: TextStyle(color: signColor),),
),
);
});
}
}), onRefresh: updateData);
}
}

请详细解释代码有什么问题以及如何修复它。谢谢。

最佳答案

getCoinList() 返回更新后的数据,但您实际上需要设置状态以使用类似

的新数据
setState () {
coindata = getCoinList();
}

如果不更新状态对象,则不会重建列表。

关于flutter - 应用程序在 Debug模式下工作但不在 Release模式下,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55783643/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com