【发布时间】:2020-08-14 19:21:11
【问题描述】:
我有一个General Provider,它在应用启动时被调用。
它fetches 通过 API 获取一些数据。通常我会把它留给那个 Provider 以备不时之需,但随着应用程序的增长,我认为最好将所有逻辑分开。
第一个 API 还引入了 user 数据。现在我在应用程序中也有一个UserProvider。我为它创建了以下内容。
class UserProvider extends ChangeNotifier {
UserModel _user;
UserProvider(this._user);
set setUser(user){
_user = user;
notifyListeners();
}
UserModel get getUser => _user;
}
这里没有错误,但问题是如何在GeneralProvider 类中调用这个setter?
我知道的方法如下:
1) UserProvider(UserModel(your_data));
2) `Provider.of(context).setUser(UserModel(your_data));
第一个对我有用。第二个不在provider part。
使用first way 的真正问题:
在我的main.dart 提供所有提供程序的地方,我需要这样做。
ChangeNotifierProvider.value(
value: UserProvider(UserModel(your_data),
),
我更喜欢在为base data 调用general api 时更新UserProvider。
【问题讨论】:
标签: android ios api flutter provider