добавить отдельный блок для функции (Выход) во flutter_bloc

Я использовал шаблон блока для создания функции входа в систему в моем приложении flutter, и я использовал плагин (flutter_bloc) ›››› все работает хорошо, но мой вопрос в том, должен ли я создавать отдельный блок для (выхода) или нет, в моем случае я просто добавляю события и состояние для выхода из системы с помощью (auth bloc):

event: import 'package: equatable / equatable.dart';

 abstract class AuthEvents extends Equatable{}

class StartedEvent extends AuthEvents {
  @override
  List<Object> get props => [];

}

class SignOutEvent extends AuthEvents{
 @override
 List<Object> get props => [];
}

class AuthLoggedInEvent extends AuthEvents {
 final String token;
 AuthLoggedInEvent({this.token});
 @override
 String toString() => 'LoggedIn { token: $token }';
 @override
 List<Object> get props => [token];
}

штат:

 class AuthStates extends Equatable{
  @override
  List<Object> get props => [];
}

class AuthInitialState extends AuthStates {
}

class AuthenticatedState extends AuthStates {
  User user;
  AuthenticatedState({this.user});

}

class UnauthenticatedState extends AuthStates {}

class LogOutSuccessState extends AuthStates{}

блок:

@override
  Stream<AuthStates> mapEventToState(AuthEvents event) async*{
       try {
         if(event is StartedEvent) {
           var loggedIn = repo.isUserSignedIn();
           if(loggedIn) {
             User user =  repo.getUser();
             yield AuthenticatedState(user: user);
           } else {
             yield UnauthenticatedState();
           }
         } else if(event is SignOutEvent){
           repo.signOut();
           yield LogOutSuccessState();
           yield UnauthenticatedState();
         }

это хороший подход? или лучше создать для него отдельный блок? Благодарность


person Osama Mohammed    schedule 12.10.2020    source источник


Ответы (1)


Имеет ли ваше состояние выхода из системы свой собственный набор состояний и правил? Затем вам нужно создать собственный блок.

Например, у вас может быть один блок, который обрабатывает регистрацию и регистрацию при выходе из системы. Это кажется прекрасным примером для собственного блока.

person nvoigt    schedule 12.10.2020
comment
спасибо за ваш ответ, пожалуйста, проверьте мой код выше, вы можете видеть, что мне просто нужно одно состояние и одно событие для выхода из системы .... потому что у меня есть блок Auth, в который я добавляю события выхода и состояние внутри него, поэтому блок auth использует для проверки, если пользователь прошел проверку подлинности (например, вошел в систему) или не прошел проверку подлинности (например, при выходе из системы) - person Osama Mohammed; 12.10.2020
comment
Я не уверен, что понимаю вопрос. Если выход из системы - это одно состояние без логики, тогда нет, вам не нужен другой блок, что бы это было делать? - person nvoigt; 12.10.2020