如何使用提供程序体系结构从服务器获取数据

时间:2019-10-10 15:40:47

标签: flutter dart

我是新手,最近我看了一些有关状态管理和提供者的视频。 我使用了statefulwidget,并在initstate中获取了数据。 现在可以在无状态的数据中获取数据并在我们的提供程序类中管理数据了吗? 谢谢。 任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

是的,您可以从无状态小部件中获取数据

示例:-

class RecipeProvider with ChangeNotifier {

bool isLoading = false;

void fetchAnyData(BuildContext context) {
    //your data fetching logic 
    isLoading = true;
    ApiManager.downloadRecipeApi().then((recipeList) {
      this.recipes = recipeList;
      isLoading = false;
      notifyListeners();
      print("===Success $recipeList");
    }).catchError((onError) {
      isLoading = false;
      notifyListeners();
      print("===onError $onError");
      Toast.show(onError.errorMsg, context, duration: 2);
    });
  }
}

ProviderFetchWidget.dart

    class ProviderFetchWidget extends StatelessWidget {

      @override
      Widget build(BuildContext context) {

      final _provider = Provider.of<RecipeProvider>(context);
      _provider.fetchAnyData(context);

      return Scaffold(
      body: provider == null || provider.isLoading
          ? Center(child: CircularProgressIndicator())
          : Center(child: Text("data fetching done")),
    );
   }