해결된 질문
작성
·
331
0
import 'package:flutter_bloc/flutter_bloc.dart';
// 이벤트 기반 패턴 라이브러리
import '../model/item.dart';
enum CartEventType { add, remove } // 이벤트 정의
class CartEvent {
final CartEventType type;
final Item item;
CartEvent(this.type, this.item);
}
class CartBloc extends Bloc<CartEvent, List<Item>> {
// 이벤트, 리스트 정의
CartBloc() : super([]) {
on<CartEvent>((event, emit) {
switch (event.type) {
case CartEventType.add:
state.add(event.item);
break;
case CartEventType.remove:
state.remove(event.item);
break;
}
emit(state);
});
}
// CartBloc() : super([]); // 초기값은 빈 배열
//
// @override
// Stream<List<Item>> mapEventToState(CartEvent event) async* {
// // 스트림 형태로 방출하게 만듦
// // 이벤트를 던지면 어떻게 수행할지 정의
// switch (event.type) {
// case CartEventType.add:
// state.add(event.item);
// break;
// case CartEventType.remove:
// state.remove(event.item);
// break;
// }
// yield state; // 값을 하나씩 밀어넣어주는 코드
// }
}