, так что в настоящее время я работаю над проектом с использованием флаттера и шаблона 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;
}
}
Я пытаюсь следовать некоторому учебнику в Интернете, но я не решил его.
Я здесь для каких-либо разъяснений или более подробной информации.