我是 flutter 和 Bloc 的新手,我正在嘗試實作一個約會應用程式,該應用程式涉及讓用戶喜歡/不喜歡。我正在使用 Bloc v8.0.1,如果用戶滑動,我在 Bloc 類中遇到困難。我想從串列中洗掉用戶。目前,我在代碼行中收到錯誤 'type 'List < User>' is not a subtype of type 'User'' emit(SwipeLoaded(users: List.from(state.props)..remove(event.user)));。我嘗試了不同的方法來訪問串列,但我想不出一種有效的方法。我已經包含了我能想到的所有相關代碼,任何幫助將不勝感激!
集團類
class SwipeBloc extends Bloc<SwipeEvent, SwipeState> {
SwipeBloc() : super(SwipeLoading()) {
on<SwipeEvent>(
(event, emit) async {
if (event is SwipeLeftEvent) {
if (state is SwipeLoaded) {
try {
emit(SwipeLoaded(users: List.from(state.props)..remove(event.user)));
} catch (_) { }
}
}
狀態類
class SwipeLoading extends SwipeState {}
class SwipeLoaded extends SwipeState {
final List<User> users;
const SwipeLoaded({
required this.users,
});
@override
List<Object> get props => [users];
}
活動類
class SwipeLeftEvent extends SwipeEvent {
final User user;
SwipeLeftEvent({
required this.user,
});
@override
List<Object> get props => [user];
}
uj5u.com熱心網友回復:
我不完全確定這是否是您錯誤的根源,但對我來說看起來可疑的一件事是以下代碼:
class SwipeLoaded extends SwipeState {
final List<User> users;
const SwipeLoaded({
required this.users,
});
@override
List<Object> get props => [users];
}
props這里的吸氣劑實際上回傳了一個List<List<User>>我懷疑可能不是你想要的。
這就是我認為您打算用于代碼的內容:
class SwipeLoaded extends SwipeState {
final List<User> users;
const SwipeLoaded({
required this.users,
});
@override
List<User> get props => [...users];
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/367336.html
