【发布时间】:2021-10-26 13:35:48
【问题描述】:
我正在使用库flutter_bloc,我有两个不同的事件——一个接受参数,另一个不接受。
class LoginSubmitted extends LoginEvent {
const LoginSubmitted();
}
class LoginFromSignup extends LoginEvent {
const LoginFromSignup({
this.username,
this.password,
});
final String username;
final String password;
@override
List<Object> get props => [username, password];
}
但是,这两个事件几乎会做同样的事情。我无法在我的login_bloc 中实现它。理想情况下,我想要这样的东西:
on<LoginUsernameChanged>(_onUsernameChanged);
on<LoginPasswordChanged>(_onPasswordChanged);
on<LoginSubmitted>(_onSubmitted);
on<LoginFromSignup>(_onSubmitted); <-- this doesn't work
正如您在上面看到的,on<LoginFromSignup>(_onSubmitted); 行给了我一个错误:
The argument type 'void Function(LoginSubmitted, Emitter<LoginState>)' can't be assigned to the parameter type 'FutureOr<void> Function(LoginFromSignup, Emitter<LoginState>)'.
我假设我的方法定义是关闭的:
void _onSubmitted(
LoginSubmitted event, <--- this might be problematic
Emitter<LoginState> emit,
) async {
在上面的示例中,event 参数接受 LoginSubmitted。如何使它接受LoginSubmitted 和LoginFromSignup?
【问题讨论】:
标签: flutter dart flutter-bloc