использовать шаблон BLoC с флаттером? - PullRequest
0 голосов
/ 10 июля 2019

, так что в настоящее время я работаю над проектом с использованием флаттера и шаблона BloC для обработки состояния, но я изо всех сил пытаюсь найти метод getBloc, поэтому, если есть кто-нибудь, кто может мне помочь, я буду очень благодарен.

itemContainerClass:

class ItemContainer extends StatelessWidget {
  final FoodItem foodItem;

  ItemContainer(@required this.foodItem);


  final CartListBloc bloc=CartProvider.getBloc<CartListBloc>();

  addToCart(FoodItem fooditem){
    bloc.addToList(foodItem);
  }

Класс cartListBloc:

    import 'dart:async';
import 'package:bloc_pattern/bloc_pattern.dart';
import 'package:rxdart/rxdart.dart';

import 'package:fooddelivery/Food/foodItem.dart';
import 'provider.dart';

class CartListBloc extends BlocBase {
  CartListBloc();

//Stream that receives a number and changes the count;

  CartProvider _cartProvider = CartProvider();
  final _cartItemController= BehaviorSubject<List<FoodItem>>.seeded([]);

//output
  Stream<List<FoodItem>> get listStream => _cartItemController.stream;

  Sink<List<FoodItem>> get listSink => _cartItemController.sink;



//Business logic
  addToList(FoodItem _foodItem) {
    _cartItemController.sink.add(_cartProvider.addToList(_foodItem));
  }

  removeFromList(FoodItem _foodItem) {
    _cartItemController.sink.add(_cartProvider.removeFromList(_foodItem));
  }

//dispose will be called automatically by closing its streams
  @override
  void dispose() {
    _cartItemController.close();
    super.dispose();
  }
}

класс провайдера корзины:

import 'package:flutter/material.dart';
import 'package:fooddelivery/BLoC/cartListBloc.dart';

import 'package:fooddelivery/Food/foodItem.dart';


class CartProvider{
  List<FoodItem> _foodItems=[];


  List<FoodItem> addToList(FoodItem _foodItem){
    _foodItems.add(_foodItem);
    return _foodItems;
  }

  List<FoodItem> removeFromList(FoodItem _foodItem){
    _foodItems.remove(_foodItem);
    return _foodItems;
  }

}

Я пытаюсь следовать некоторому учебнику в Интернете, но я не решил его. Я здесь для каких-либо разъяснений или более подробной информации.

...