Надеюсь, не слишком смутный вопрос
Правильно ли я помещаю логику в мои модели 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
, которые будут вызываться и передавать пользовательский ввод из некоторых текстовых полей при нажатии кнопки.