Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 未处理的异常:生成期间调用了setState()或markNeedsBuild()。内布洛克斯腾纳_Flutter_Bloc_Statefulwidget_Flutter State - Fatal编程技术网

Flutter 未处理的异常:生成期间调用了setState()或markNeedsBuild()。内布洛克斯腾纳

Flutter 未处理的异常:生成期间调用了setState()或markNeedsBuild()。内布洛克斯腾纳,flutter,bloc,statefulwidget,flutter-state,Flutter,Bloc,Statefulwidget,Flutter State,我不熟悉flifter并尝试在应用程序中实现bloc。我想通过事件更改标志的值,并在标志的布尔值更改后刷新状态。 我试图在博客侦听器中设置state(),但返回以下异常 [ERROR:flutter/lib/ui/ui_dart_state.cc(166)] Unhandled Exception: setState() or markNeedsBuild() called during build. E/flutter ( 2570): This Overlay widget cannot b

我不熟悉flifter并尝试在应用程序中实现bloc。我想通过事件更改标志的值,并在标志的布尔值更改后刷新状态。 我试图在博客侦听器中设置state(),但返回以下异常

[ERROR:flutter/lib/ui/ui_dart_state.cc(166)] Unhandled Exception: setState() or markNeedsBuild() called during build.
E/flutter ( 2570): This Overlay widget cannot be marked as needing to build because the framework is already in the process of building widgets.  A widget can be marked as needing to be built during the build phase only if one of its ancestors is currently building. This exception is allowed because the framework builds parent widgets before children, which means a dirty descendant will always be built. Otherwise, the framework might not visit this widget during this build phase.
E/flutter ( 2570): The widget on which setState() or markNeedsBuild() was called was:
E/flutter ( 2570):   Overlay-[LabeledGlobalKey<OverlayState>#94b3b]
E/flutter ( 2570): The widget which was currently being built when the offending call was made was:
E/flutter ( 2570):   ActivitySignUpWidget
E/flutter ( 2570): #0      Element.markNeedsBuild.<anonymous closure> (package:flutter/src/widgets/framework.dart:4211:11)
E/flutter ( 2570): #1      Element.markNeedsBuild (package:flutter/src/widgets/framework.dart:4226:6)
E/flutter ( 2570): #2      State.setState (package:flutter/src/widgets/framework.dart:1260:14)
E/flutter ( 2570): #3      OverlayState.insert (package:flutter/src/widgets/overlay.dart:326:5)
E/flutter ( 2570): #4      ToastView.createView (package:toast/toast.dart:67:18)
E/flutter ( 2570): #5      Toast.show (package:toast/toast.dart:19:15)
E/flutter ( 2570): #6      _ActivitySignUpState._selectCountrCode (package:crm_application_devops/signup/ActivitySignUp.dart:471:11)
E/flutter ( 2570): #7      _ActivitySignUpState._createForm (package:crm_application_devops/signup/ActivitySignUp.dart:219:53)
E/flutter ( 2570): #8      _ActivitySignUpState.build (package:crm_application_devops/signup/ActivitySignUp.dart:115:42)
E/flutter ( 2570): #9      StatefulElement.build (package:flutter/src/widgets/framework.dart:4663:28)
E/flutter ( 2570): #10     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4546:15)
E/flutter ( 2570): #11     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4719:11)
E/flutter ( 2570): #12     Element.rebuild (package:flutter/src/widgets/framework.dart:4262:5)
E/flutter ( 2570): #13     BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2667:33)
E/flutter ( 2570): #14     WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:866:20)
E/flutter ( 2570): #15     RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:286:5)
E/flutter ( 2570): #16     SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1117:15)
E/flutter ( 2570): #17     SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1056:9)
E/flutter ( 2570): #18     SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:972:5)
E/flutter ( 2570): #19     _rootRun (dart:async/zone.dart:1190:13)
E/flutter ( 2570): #20     _CustomZone.run (dart:async/zone.dart:1093:19)
E/flutter ( 2570): #21     _CustomZone.runGuarded (dart:async/zone.dart:997:7)
E/flutter ( 2570): #22     _invoke (dart:ui/hooks.dart:253:10)
E/flutter ( 2570): #23     _drawFrame (dart:ui/hooks.dart:211:3)
E/flutter ( 2570): 
[错误:flatter/lib/ui/ui\u dart\u state.cc(166)]未处理的异常:在生成过程中调用setState()或markNeedsBuild()。
E/flatter(2570):这个覆盖小部件不能被标记为需要构建,因为框架已经在构建小部件的过程中。只有当一个小部件的祖先当前正在构建时,才可以将其标记为需要在构建阶段构建。此异常是允许的,因为框架在子部件之前构建父部件,这意味着将始终构建脏子部件。否则,框架可能不会在构建阶段访问此小部件。
E/flatter(2570):调用setState()或markNeedsBuild()的小部件是:
E/颤振(2570):覆盖层-[贴有标签的Lobalkey#94b3b]
E/flatter(2570):当发出违规呼叫时,当前正在构建的小部件是:
E/颤振(2570):活动注册桥
E/颤振(2570):#0元素。标记需要构建。(包:flatter/src/widgets/framework.dart:4211:11)
E/flatter(2570):#1 Element.markNeedsBuild(包:flatter/src/widgets/framework.dart:4226:6)
E/flatter(2570):#2 State.setState(包:flatter/src/widgets/framework.dart:1260:14)
E/flatter(2570):#3 overlystate.insert(包:flatter/src/widgets/overlay.dart:326:5)
E/flatter(2570):#4 toast view.createView(包:toast/toast.dart:67:18)
E/Flatter(2570):#5 Toast.show(包装:Toast/Toast.dart:19:15)
E/flatter(2570):#6(活动注册上州.)选择CountrCode(软件包:crm(应用程序)devops/signup/ActivitySignUp.dart:471:11)
E/Flatter(2570):#7(活动签名上州)(创建表单)(包:crm(应用程序)(devops/signup/ActivitySignUp.dart:219:53)
E/flatter(2570):#8 ActivitySignUpState.build(包:crm_application_devops/signup/ActivitySignUp.dart:115:42)
E/flatter(2570):#9 StatefulElement.build(包:flatter/src/widgets/framework.dart:4663:28)
E/flatter(2570):#10 ComponentElement.performRebuild(包:flatter/src/widgets/framework.dart:4546:15)
E/flatter(2570):#11 stateflement.performRebuild(包:flatter/src/widgets/framework.dart:4719:11)
E/flatter(2570):#12 Element.rebuild(包:flatter/src/widgets/framework.dart:4262:5)
E/flatter(2570):#13 BuildOwner.buildScope(包:flatter/src/widgets/framework.dart:2667:33)
E/flatter(2570):#14 WidgetsBinding.drawFrame(包:flatter/src/widgets/binding.dart:866:20)
E/flatter(2570):#15渲染器绑定。_handlePersistentFrameCallback(包:flatter/src/rendering/binding.dart:286:5)
E/flatter(2570):#16 SchedulerBinding._invokeFrameCallback(包:flatter/src/scheduler/binding.dart:1117:15)
E/flatter(2570):#17 SchedulerBinding.handleDrawFrame(包:flatter/src/scheduler/binding.dart:1056:9)
E/flatter(2570):#18调度绑定。#手持绘图框架(包:flatter/src/scheduler/binding.dart:972:5)
E/flatter(2570):#19 rootRun(dart:async/zone.dart:1190:13)
E/flatter(2570):#20 _CustomZone.run(dart:async/zone.dart:1093:19)
E/颤振(2570):#21 CustomZone.runguard(dart:async/zone.dart:997:7)
E/flatter(2570):#22(省道:ui/hooks.dart:253:10)
E/颤振(2570):#23 40;省道:ui/挂钩。省道:211:3)
E/颤振(2570):
下面是我的代码。帮我解决这个问题。提前谢谢

@override
  Widget build(BuildContext context) {
    signupBloc = BlocProvider.of<SignUpBloc>(context);
    return Scaffold(
      body: Container(
        color: Colors.white,
        child: SafeArea(
          child: Column(children: [
            Column(
              children: [
                BlocListener<SignUpBloc, SignUpState>(
                  listener: (context, state) {
                    if(state is ContryCodeChangeState){
                      print("State called");
                      setState(() {
                        valueOfInput = state.getContryCodeValue;
                      });
                    }
                  },
                  child: Container(
                    child: Column(
                      children: [
                        _signUpHeader(),
                        Padding(
                          padding: const EdgeInsets.only(top: 30.0),
                          child: jsonStringValues != null
                              ? Text(
                                  jsonStringValues[
                                      "Sign_up_to_become_a_member"],
                                  style: TextStyle(
                                      color: Colors.purpleAccent,
                                      fontSize: 16.0,
                                      fontWeight: FontWeight.bold),
                                )
                              : null,
                        ),
                        _createAccount(),
                        Center(
                            child: Padding(
                                padding: EdgeInsets.only(right: 30, left: 30),
                                child: Visibility(
                                  visible: true,
                                  child: _createForm(),
                                ))),
                        Padding(
                          padding: const EdgeInsets.only(top: 16),
                          child: Align(
                            alignment: FractionalOffset.bottomCenter,
                            child: Text(
                              "By sign up you are agreeing to th T&C",
                              style:
                                  TextStyle(color: Colors.black, fontSize: 11),
                            ),
                          ),
                        ),
                      ],
                    ),
                  ),
                ),
              ],
            ),
          ]),
        ),
      ),
    );
  }
@覆盖
小部件构建(构建上下文){
signupBloc=BlocProvider.of(上下文);
返回脚手架(
主体:容器(
颜色:颜色,白色,
儿童:安全区(
子项:列(子项:[
纵队(
儿童:[
布洛克斯腾纳(
侦听器:(上下文、状态){
如果(状态为ContryCodeChangeState){
打印(“称为州”);
设置状态(){
valueOfInput=state.getContryCodeValue;
});
}
},
子:容器(
子:列(
儿童:[
_签名者(),
填充物(
填充:仅限常量边集(顶部:30.0),
子项:jsonStringValues!=null
?文本(
jsonStringValues[
“注册成为会员”],
样式:TextStyle(
颜色:颜色。紫红色,
字体大小:16.0,
fontWeight:fontWeight.bold),
)
:null,
),
_createAccount(),
居中(
孩子:填充(
填充:仅限边设置(右:30,左:30),
孩子:可见度(
可见:对,
子项:_createForm(),
))),
填充物(
填充:仅限常量边集(顶部:16),
子对象:对齐(
对齐:分馏Loffset.bottomCenter,
子:文本(
“注册即表示您同意T&C”,
风格:
TextStyle(颜色:Colors.black,字体大小:11),
if(mounted){
 //call set state here
}