我是新手,最近我看了一些有关状态管理和提供者的视频。 我使用了statefulwidget,并在initstate中获取了数据。 现在可以在无状态的数据中获取数据并在我们的提供程序类中管理数据了吗? 谢谢。 任何帮助表示赞赏。
答案 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")),
);
}