Как использовать Setter для класса провайдера в другом классе провайдера с флаттером - PullRequest
1 голос
/ 30 апреля 2020

У меня есть General Provider, который вызывается при запуске приложения.

это fetches некоторые данные через API. Обычно я бы оставил этот провайдер для трепетания, но по мере роста приложения я думаю, что лучше отделить логи c для всех.

, этот первый API также вводит данные user. Теперь у меня также есть UserProvider в приложении. Я создал для него следующее.


class UserProvider extends ChangeNotifier {
  UserModel _user;
  UserProvider(this._user);

  set setUser(user){
    _user = user;
    notifyListeners();
  }  

  UserModel get getUser => _user;
}

здесь нет ошибки, но вопрос в том, как назвать это setter в GeneralProvider классе?

Способ, который я знаю, описан ниже:

1) UserProvider(UserModel(your_data));

2) `Provider.of (context) .setUser (UserModel (your_data));; 1021 *

Первый из них работает для меня. а второй нет в provider part.

Реальная проблема с использованием first way:


В моем main.dart, где предоставляются все провайдеры, мне нужно сделайте это следующим образом.


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

Я предпочел бы обновить UserProvider, когда general api вызывается для base data.

...