#flutter #dart
#flutter #dart
Вопрос:
Я ищу аналогичное решение для передачи интерфейса в качестве paremeter в функции, подобной Kotlin:
test(object: Handler {
override fun onComplete() {
}
})
Единственное, что я нахожу для Dart, — это использование implements в классе, что хорошо, но не то, что мне нужно.
До сих пор мой подход заключался в создании абстрактного класса:
abstract class AuthListener{
void onChange(AuthState authState);
}
Запуск прослушивателя:
isSignedInListener(AuthListener authListener){
FirebaseAuth.instance
.authStateChanges()
.listen((User user) {
if (user == null) {
return authListener.onChange(AuthState.SIGNED_OUT);
} else {
return authListener.onChange(AuthState.SIGNED_IN);
}
});
}
И теперь мне нужно прослушать ответ, в котором мне нужна помощь:
Ответ №1:
Вы можете создать функцию и использовать ее в качестве обратного вызова (передать методам и т. Д.).
Функция может быть помещена в переменную:
Function(AuthState authState) callback;
или в качестве аргумента:
void isSignedInListener(Function(AuthState authState) callback) {}
auth.isSignedInListener((authState) {
// do something here
});