你好,我的代码如下:
class FavoriteBloc extends Bloc<FavoriteEvent, FavoriteState> {
final SaveMovie saveMovie;
final GetFavoriteMovies getFavoriteMovies;
final DeleteFavoriteMovie deleteFavoriteMovie;
final CheckIfFavoriteMovie checkIfFavoriteMovie;
FavoriteBloc({
required this.saveMovie,
required this.getFavoriteMovies,
required this.deleteFavoriteMovie,
required this.checkIfFavoriteMovie,
}) : super(FavoriteInitial());
@override
Stream<FavoriteState> mapEventToState(
FavoriteEvent event,
) async* {
if (event is ToggleFavoriteMovieEvent) {
if (event.isFavorite) {
await deleteFavoriteMovie(MovieParams(event.movieEntity.id));
} else {
await saveMovie(event.movieEntity);
}
final response =
await checkIfFavoriteMovie(MovieParams(event.movieEntity.id));
yield response.fold(
(l) => FavoriteMoviesError(),
(r) => IsFavoriteMovie(r),
);
} else if (event is LoadFavoriteMovieEvent) {
yield* _fetchLoadFavoriteMovies();
} else if (event is DeleteFavoriteMovieEvent) {
await deleteFavoriteMovie(MovieParams(event.movieId));
yield* _fetchLoadFavoriteMovies();
} else if (event is CheckIfFavoriteMovieEvent) {
final response = await checkIfFavoriteMovie(MovieParams(event.movieId));
yield response.fold(
(l) => FavoriteMoviesError(),
(r) => IsFavoriteMovie(r),
);
}
}
Stream<FavoriteState> _fetchLoadFavoriteMovies() async* {
final Either<AppError, List<MovieEntity>> response =
await getFavoriteMovies(NoParams());
yield response.fold(
(l) => FavoriteMoviesError(),
(r) => FavoriteMoviesLoaded(r),
);
}
}
字符串
我收到这个错误:未处理的异常:不良状态:add(CheckIfFavoriteMovieEvent)在没有注册事件处理程序的情况下被调用。请确保通过on((event,emit){...})注册处理程序
如果你能帮助我解决我写的这个错误,我将非常感激。非常感谢现在帮助我的每一个人
我使用了许多人工智能工具来解决问题,但它并没有给予我想要的解决方案。
1条答案
按热度按时间xlpyo6sf1#
你的代码应该看起来像这样:
字符串