在 flutter_bloc 中为(注销)功能添加单独的集团

add separate bloc for (Sign Out) functionality in flutter_bloc

我一直在使用 bloc 模式在我的 flutter 应用程序中创建登录功能,并且我使用了 (flutter_bloc) 插件>>>>一切正常,但我的问题是我应该创建一个用于(注销)或不用于(注销)的单独集团,在我的情况下,我只是使用(auth bloc)添加事件和注销状态:

事件: 导入 '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();
         }

这是一个好方法吗?或者最好为它创建一个单独的集团?谢谢

您的“正在注销”状态是否有自己的一套状态和规则?那么你应该创建它自己的集团。

例如,您可以有一个集团在注销时处理注册和注册。这似乎是它自己集团的一个完美例子。