flutter - 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>(
...
我希望你们中的某个人可以帮助我:)
最好的,亚历克斯
解决方案
我认为问题是:函数内部的上下文为空。
所以你要么需要在构建方法中定义这些函数,你可以在其中获取上下文,或者在调用这些函数时将上下文作为函数参数传递。
推荐阅读
- java - 正则表达式与目标不匹配
- angular - “.../node_modules/rxjs/Rx”没有导出的成员 'throwError'
- java - 为什么 Long.valueOf(stateMap.get("time")) 使用 Base64 加密时给出 java.lang.ClassCastException
- ios - 在新 ViewController 中隐藏 tabBar 时的 iOS 自动布局问题
- ios - iOS Swift - URLSession.dataTask 在第一次调用后不调用回调方法
- npm - NPM :配置为使用 github oauth 令牌
- android - 是否可以从 pc2 访问 pc1 上的 android 模拟器?
- javascript - React SSR根据API响应动态导入组件
- c - 带有 C 模块和错误 2732 的 C++ DLL 项目
- android - 在隐藏软按钮导航栏上,状态栏在右侧保留未覆盖的空间