• 카테고리

    질문 & 답변
  • 세부 분야

    모바일 앱 개발

  • 해결 여부

    해결됨

CartBloc 대체 코드 올립니다.

23.06.22 17:19 작성 조회수 277

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; // 값을 하나씩 밀어넣어주는 코드
  // }
}

답변 2

·

답변을 작성해보세요.

0

코드 공유 감사합니다

0

cudodev22님의 프로필

cudodev22

질문자

2023.06.22

근데 이게 정확한지는 모르겠네요