首页 > 解决方案 > Flutter:未处理的异常:'package:provider/src/provider.dart':断言失败:第 240 行 pos 12:'context != null':不正确

问题描述

当我从该页面 (shoe_box_page.dart) 导航到另一个页面并且此页面 (shoe_box_page.dart) 中的内容尚未完全加载时,出现上述异常。

我得到的错误信息

class ShoeBoxPage extends StatefulWidget {
  @override
  _ShoeBoxPageState createState() => _ShoeBoxPageState();
}

class _ShoeBoxPageState extends State<ShoeBoxPage> {
  final _scrollController = ScrollController();

  @override
  void initState() {
    super.initState();
    Future.delayed(Duration(seconds: 1)).then((_) {
      _checkRequestLoad();
    });
  }

  bool get _canScroll {
    if (!_scrollController.hasClients) return false;
    final x = _scrollController.position.maxScrollExtent;
    final deviceHeight = MediaQuery.of(context).size.height;
    return x - _progressIndicatorHeight > deviceHeight;
  }

  void _checkRequestLoad() {
    final bloc = context.bloc<ShoeBoxBloc>();
    if (bloc.state.billsAvailable && !_canScroll) {
      context
          .bloc<ShoeBoxBloc>()
          .add(ShoeBoxEvent.scrollingOverUnloadedScope());
      Future.delayed(Duration(seconds: 1)).then((_) {
        _checkRequestLoad();
      });
    }
  }

  @override
  Widget build(BuildContext context) {
    return BlocBuilder<ShoeBoxBloc, ShoeBoxState>(
  ...

我希望你们中的某个人可以帮助我:)

最好的,亚历克斯

标签: flutterdartnavigation

解决方案


我认为问题是:函数内部的上下文为空。

所以你要么需要在构建方法中定义这些函数,你可以在其中获取上下文,或者在调用这些函数时将上下文作为函数参数传递。


推荐阅读