如何解决Flutter:如何在提供程序的列表中保存来自数据库未来的数据
我有服务从 api 接收一些数据: 导入'../models/clubs.dart'; 导入 'package:http/http.dart' 作为 http;
class ApiService {
var url = 'http://10.0.2.2:8000/api/v1/';
getActiveSeasonClubs() async {
var newurl = Uri.parse(url + 'active_season_clubs/');
var response = await http.get(newurl);
var data = clubsFromJson((response.body));
return data;
}
}
我想在提供者中复制这个数据列表以使用它并在应用程序中更新它,我使用了这个但收到了空数据:
class TeamsProvider with ChangeNotifier {
var _clubs = [];
get clubs => loadValue();
Future loadValue() async {
_clubs = await ApiService().getActiveSeasonClubs();
return _clubs;
}
}
并在 FutureBuilder 中使用它:
body: Consumer<TeamsProvider>(builder: (context,teamsProv,child) {
return FutureBuilder(
future: teamsProv.clubs,
解决方法
进行这些修改:
class TeamsProvider with ChangeNotifier {
var _clubs = [];
get clubs => _clubs;
Future loadValue() async {
_clubs = await ApiService().getActiveSeasonClubs();
return _clubs;
}
}
在您未来的构建器中使用 future: teamsProv.loadValue()
。
当您想阅读列表时,请使用 teamsProv.clubs
。
如果您想在提供者类之外修改此列表表单,请在那里创建另一个 void 函数,该函数将更改作为参数,并使用它们从类外部修改 _clubs
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。