Получатель 'blo c' был вызван на нуль - PullRequest
0 голосов
/ 25 марта 2020

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

 The following NoSuchMethodError was thrown building HomePage(dirty, state: _HomePageState#ebfc2):
I/flutter (22800): The getter 'bloc' was called on null.
I/flutter (22800): Receiver: null
I/flutter (22800): Tried calling: bloc

Возможно, кто-то столкнулся с Подобная ошибка раньше и может помочь мне исправить это?

Вот мой код, мой body из виджета в HomePage()

body: StreamBuilder<List<Order>>(
          stream: bloc.orders,
          builder: (context, snapshot) {
            if(!snapshot.hasData){
              return Center(child: CircularProgressIndicator());
            }else{
              return ListView.builder(
                itemCount: snapshot.data.length,
                itemBuilder: (context, index) {
                  return ListTile(
                    title: Text(snapshot.data[index].title),
                  );
                },
              );
            }
          },

мой OrderBlo c .dart

class OrderBloc{
  final _orders = BehaviorSubject<List<Order>>();

  Stream<List<Order>> get orders => _orders.stream;
  Function(List<Order>) get changeOrders => _orders.sink.add;

  dispose(){
    _orders.close();
  }

  Future<void> fetchOrders() async{
    var response = await http.get("http://10.0.2.2:80/order");
    var jsonResponse = convert.jsonDecode(response.body);
    var orderJson = jsonResponse as List;
    List<Order> orders = List<Order>();

    orderJson.forEach((orders) => orders.add(Order.fromJson(orders)));
    changeOrders(orders);
  }
}

и мой OrderProvider.dart

class OrderProvider extends InheritedWidget{
  final OrderBloc bloc;

  OrderProvider({Key key, Widget child})
    :bloc = OrderBloc(),
    super(key:key, child:child);

    bool updateShouldNotify(_) => true;

    static OrderBloc of (BuildContext context){
      // return(context.inheritFromWidgetOfExactType(OrderProvider) as OrderProvider)
      return context.dependOnInheritedWidgetOfExactType<OrderProvider>()
      .bloc;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...