Dalon
Dalon

Reputation: 700

Flutter Provider: Should I create a new Provider for every class?

Lets say I have multiple settings a user can set. Should I have one Provider which manages all settings like so:

class Settings with ChangeNotifier {
  SettingsA _settingsA;
  SettingsB _settingsB;
  List<String> _settingsC;

  SettingsA get settingsA => _settingsA;
  SettingsB get settingsB => _settingsB;
  List<String> get settingsC => _settingsC;

  // Setters
  void updateA(SettingsA settingsA) {
    _settingsA = settingsA;
    notifyListeners();
  }

  void updateB(SettingsB settingsB) {
    _settingsB = settingsB;
    notifyListeners();
  }

  void addToC(String setting) {
    _settingsC.add(setting);
    notifyListeners();
  }
}

Or should I rather make a Provider for every object like so:

class SettingsAProvider with ChangeNotifier {
  SettingsA _settingsA;

  SettingsA get settingsA => _settingsA;

  // Setters
  void update(SettingsA settingsA) {
    _settingsA = settingsA;
    notifyListeners();
  }
}

What is the best practise of using ChangeNotifierProviders?

Upvotes: 0

Views: 134

Answers (1)

Min Min Chit
Min Min Chit

Reputation: 111

In my opinion, you should use SettingAProvider,SettingBProvider,...

If you use Settings Class...

When you call updateA, it will notify all value _settingA,_settingB,_settingC,... even if unecessary.

Upvotes: 1

Related Questions