我一直在使用floc模式在flutter应用程序中创建登录功能,并且我已经使用了(flutter_bloc)插件>>>>一切正常,但是我的问题是我应该为(注销)创建一个单独的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{}
bloc:
@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();
}
这是一个好方法吗?还是为它创建一个单独的集团更好?谢谢
答案 0 :(得分:1)
您的“正在注销”状态是否有其自己的状态和规则集?然后,您应该创建它自己的集团。
例如,您可能有一个团体在注销时处理注册和注册。对于它自己的集团来说,这似乎是一个完美的例子。