gpt4 book ai didi

android - 如何使用 Setter 为另一个提供者类中的提供者类提供 flutter

转载 作者:行者123 更新时间:2023-12-05 06:17:38 25 4
gpt4 key购买 nike

我有一个 General Provider,它在应用程序启动时被调用。

它通过 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 部分

使用第一种方式的真正问题:


在提供所有提供程序的 main.dart 中,我需要这样做。


ChangeNotifierProvider.value(
value: UserProvider(UserModel(your_data),
),

我更喜欢在 general apibase data 调用时更新 UserProvider。

最佳答案

我的解决方案是 UserProvider 类中的这个 setter:

  void setUser(User s) {
_user = s;
notifyListeners();
}

用以下内容包装您的小部件:

 return Consumer<UserProvider>(builder: (_,provider,__){
return WhateverYouWantToBuild(
...
),
});

然后调用它:

provider.setUser(newValue!);

关于android - 如何使用 Setter 为另一个提供者类中的提供者类提供 flutter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61523228/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com