【问题标题】:Flutter : How save data comes from database (Future) in a list in providerFlutter:如何保存数据来自提供者列表中的数据库(未来)
【发布时间】:2021-07-24 16:44:54
【问题描述】:

我有服务从 api 接收一些数据: 导入'../models/clubs.dart'; 将“包: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,

【问题讨论】:

  • 我认为您需要在未来调用该函数:teamProv.loadValue(),
  • @JorgeVieira 它在未来的构建器中获取数据,但我想将其保存在列表中以对其进行更新

标签: flutter future provider


【解决方案1】:

进行这些修改:

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

【讨论】:

    猜你喜欢
    • 2018-04-18
    • 2023-02-05
    • 1970-01-01
    • 1970-01-01
    • 2021-05-07
    • 2021-12-11
    • 1970-01-01
    • 2021-04-26
    • 2015-12-24
    相关资源
    最近更新 更多