Flutter 颤振web:BlocProvider:TypeError:无法读取属性';获取$bloc';未定义的
我只在概要文件和发布(web)版本中遇到这个问题,但在调试版本中效果良好 所以我有一个类,它可以访问Flutter 颤振web:BlocProvider:TypeError:无法读取属性';获取$bloc';未定义的,flutter,flutter-web,Flutter,Flutter Web,我只在概要文件和发布(web)版本中遇到这个问题,但在调试版本中效果良好 所以我有一个类,它可以访问didChangeDependencies() 使用此设置,在调试模式下一切正常,但在配置文件构建中,我遇到以下错误: ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════ js_primitives.dart:49 The following Nul
didChangeDependencies()
使用此设置,在调试模式下一切正常,但在配置文件构建中,我遇到以下错误:
══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
js_primitives.dart:49 The following NullError was thrown building Builder:
js_primitives.dart:49 NoSuchMethodError: method not found: 'get$bloc' on null
js_primitives.dart:49
js_primitives.dart:49 Widget creation tracking is currently disabled. Enabling it enables improved error messages. It can
js_primitives.dart:49 be enabled by passing `--track-widget-creation` to `flutter run` or `flutter test`.
js_primitives.dart:49
js_primitives.dart:49 When the exception was thrown, this was the stack:
js_primitives.dart:49 TypeError: Cannot read property 'get$bloc' of undefined
js_primitives.dart:49 at Object.BizBlocProvider_of (https://bazon.in/app/main.dart.js:10277:126)
js_primitives.dart:49 at _CategoryPageState.didChangeDependencies$0 (https://bazon.in/app/main.dart.js:47315:25)
js_primitives.dart:49 at StatefulElement._firstBuild$0 (https://bazon.in/app/main.dart.js:85143:31)
js_primitives.dart:49 at StatefulElement.mount$2 (https://bazon.in/app/main.dart.js:85016:12)
js_primitives.dart:49 at SingleChildRenderObjectElement.inflateWidget$2 (https://bazon.in/app/main.dart.js:84733:16)
js_primitives.dart:49 at SingleChildRenderObjectElement.updateChild$3 (https://bazon.in/app/main.dart.js:84661:20)
js_primitives.dart:49 at SingleChildRenderObjectElement.mount$2 (https://bazon.in/app/main.dart.js:85506:39)
js_primitives.dart:49 at StatelessElement.inflateWidget$2 (https://bazon.in/app/main.dart.js:84733:16)
js_primitives.dart:49 at StatelessElement.updateChild$3 (https://bazon.in/app/main.dart.js:84661:20)
js_primitives.dart:49 at StatelessElement.performRebuild$0 (https://bazon.in/app/main.dart.js:85039:41)
更新1:
现在我有了一个父窗口小部件主页
,其didChangeDependencies()
如下所示:
Widget build(BuildContext context) {
return CityBlocProvider(
child: CategoryBlocProvider(
child: BizBlocProvider(
child: MaterialApp( /** actual code goes here */ )
)));
}
@override
void didChangeDependencies() {
print('Home: Did Change Dependencies');
print(context);
print(CityBlocProvider.of(context));
_cityBloc = CityBlocProvider.of(context);
_categoryBloc = CategoryBlocProvider.of(context);
super.didChangeDependencies();
}
在本地运行上述代码时的日志为:
js_primitives.dart:32 Home: Did Change Dependencies
js_primitives.dart:32 HomePage(dirty, state: _HomePageState#eb8ac(lifecycle state: initialized))
js_primitives.dart:32 Instance of 'CityBloc'
但是当我在profile
build中运行相同的代码时,日志是:
js_primitives.dart:49 Home: Did Change Dependencies
js_primitives.dart:49 HomePage
js_primitives.dart:49 ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
js_primitives.dart:49 The following NullError was thrown building _BodyBuilder:
js_primitives.dart:49 NoSuchMethodError: method not found: 'get$bloc' on null
主页的实例看起来不同。配置文件生成是托管的@
这里会出什么问题
js_primitives.dart:49 Home: Did Change Dependencies
js_primitives.dart:49 HomePage
js_primitives.dart:49 ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
js_primitives.dart:49 The following NullError was thrown building _BodyBuilder:
js_primitives.dart:49 NoSuchMethodError: method not found: 'get$bloc' on null