【发布时间】:2020-09-29 07:10:38
【问题描述】:
我正在关注 Felix Angelov 关于 Flutter Bloc 模式的教程“https://www.hidigital.io/blog/2020/06/flutter-login-tutorial-with-flutter-bloc”。
为什么AuthenticationEvent 的类是这样实例化的:
import 'package:meta/meta.dart';
import 'package:equatable/equatable.dart';
abstract class AuthenticationEvent extends Equatable {
AuthenticationEvent([List props = const []]) : super(props); <--------- this line
}
class AppStarted extends AuthenticationEvent {
@override
String toString() => 'AppStarted';
}
class LoggedIn extends AuthenticationEvent {
final String token;
LoggedIn({@required this.token}) : super([token]);
@override
String toString() => 'LoggedIn { token: $token }';
}
class LoggedOut extends AuthenticationEvent {
@override
String toString() => 'LoggedOut';
}
而对于 LoginEvent 类,它是这样实例化的:
import 'package:meta/meta.dart';
import 'package:equatable/equatable.dart';
abstract class LoginEvent extends Equatable {
const LoginEvent(); <----------------------------------------- this line
}
class LoginButtonPressed extends LoginEvent {
final String username;
final String password;
const LoginButtonPressed({
@required this.username,
@required this.password,
});
@override
List<Object> get props => [username, password];
@override
String toString() =>
'LoginButtonPressed { username: $username, password: $password }';
}
这里有什么区别?
【问题讨论】:
标签: flutter flutter-bloc