Флаттер - Что должно быть в моих моделях Scoped? - PullRequest
0 голосов
/ 14 февраля 2019

Надеюсь, не слишком смутный вопрос

Правильно ли я помещаю логику в мои модели Scoped или есть идея, чтобы они хранили данные?

Если у меня есть класс входа, отвечающий захранение данных для входа в систему и предоставление логики для обработки входов в какую-либо систему, имеет ли смысл объединить это в модель?Примерный пример ниже:

class Login extends Model
{
  String currentUser = "";
  String currentPassword = "";
  String state = "Not Logged In";    

  login(String username, String password) async
  {
    try {
      _setHeaders(username, password);
      state = "Logging In";      
      var _loginResult = await _makeLoginRequest(username, password)
      if (_loginResult.success){
        state = "Logged in";
        currentUser = username;
        currentPassword = password;
      else
        state = "Not Logged in";

      notifyListeners();

    }
    on Error catch(e)
    {
      state = "Login Error"
      notifyListeners();
    }
  }
}

Экземпляр этого класса будет создан и передан приложению в моем main

void main() {

  Login login = new Login();

  runApp(ScopedModel<Login>(
    model: login,
    child: MaterialApp(
    title: 'My App',
    home: LoginPage(),
  )),);
}

И в LoginPage будет использоваться эта модель,состояние будет проверяться для определения того, что отображать и когда обновлять (кнопка «Выход из системы» при входе в систему, предупреждение при ошибке и т. д.) и метод login, которые будут вызываться и передавать пользовательский ввод из некоторых текстовых полей при нажатии кнопки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...