颤动提供程序在initState()中返回null 、 我正在从firebase获取DropdownMenuItem的列表,如果我在构建中使用provider,它不会返回null,但是在initstate中,即使我设置了listen值,false也会返回null以下是错误消息:The getter 'first' was called on
Future<void> checkUserStatus(context) async { final successOrFailure = await checkUserStatusUseCase(NoParams()); if(successOrFailure is SuccessResult<bool>){ emit(state.copyWith(isUserExits: successOrFailure.data)); logDebug('called'); Navigator.pushNamed(context, HomeScreen.route).then((value) ...
// Could do this in one line: Future.delayed(Duration.zero, this._getCategories);...
l initState:初始化状态,通常在此阶段会执行一些初始化操作,比如订阅事件、初始化变量等。StatefulWidget 创建完后调用的第一个方法,而且只执行一次。 l didChangeDependencies:当 State 对象的依赖关系发生变化时调用,例如在 initState 之后,当 State 对象依赖的InheritedWidget 发生变化时。若节点的父级结构中的层级 或...
如果你想在initState的时候调用这个组件,那么就需要等父组件创建完成后再去创建小组件, 官方提供了一个组件创建完成的回调通知方法 WidgetsBinding.instance.addPostFrameCallback((_){ //需要创建的小组件 }); 在父组件创建完成之后,再创建小组件。 ---end 本人菜鸟一枚,不足之处,还望指点...
但是在_StateLifecycle为created和defunct时是无法跨组件拿到数据的,也就是initState()时和dispose()后。所以错误信息提示我们在didChangeDependencies调用。 然而放在didChangeDependencies后,新的异常: setState() or markNeedsBuild() called during build.
每个路由是完全独立的。/不与/login共享状态,因此从/到/login将从/login触发LoginPage上的initState。
前面第二点我有说到我会在接口请求前弹出loading。如果我将请求方法放在了initState方法中,异常如下: inheritFromWidgetOfExactType(_InheritedTheme) or inheritFromElement() was called before initState() completed. When an inherited widget changes, for example if the value of Theme.of() changes, its depe...
void initState(){ WidgetsBinding.instance.addPostFrameCallback((_) { if (mounted) _animationController.forward(); }); } 1. 2. 3. 4. 5. 6. AnimationController有可能随着 State 一起dispose了,但是FrameCallback仍然会被执行,进而导致异常。
theme:ThemeData( primarySwatch:Colors.blue, ), home:MyHomePage(), ); } }classMyHomePageextendsStatefulWidget{@override_MyHomePageStatecreateState() {return_MyHomePageState(); } }class_MyHomePageStateextendsState<MyHomePage>withWidgetsBindingObserver{@overridevoidinitState() {super.initState();WidgetsBindin...