n' t可以弹出当前屏幕获取'!_ debuglocked':不是真的

发布于 2025-02-11 05:43:20 字数 1074 浏览 2 评论 0原文

我正在使用 Bloc 状态管理进行更新状态。我想弹出当前屏幕以聆听Bloc侦听器的状态更改,但显示“!_debuglocked”:在控制台上是不正确的。我尝试了一些类似的问题,例如:

第一尝试:

WidgetsBinding.instance.addPostFrameCallback((_) {
   Navigator.pop(context);
});

第二尝试:

Future.delayed(const Duration(milliseconds: 500), () {
   Navigator.pop(context);
}

我的bloclistener:

BlocListener<CreateLabelCubit, CreateLabelState>(
  listener: (context, state) {
    if (state.networkState == NetworkState.success) {
      FlushbarHelper.createSuccess(message: 'Create Label Successful!')
          .show(context);
      //refresh label list
      labelListBloc.add(LabelListFetched());
      //& pop form create label page
      /*WidgetsBinding.instance?.addPostFrameCallback((_) {
        Navigator.pop(context);
      });*/
      Navigator.pop(context);
    } else if (state.networkState == NetworkState.failure) {
      FlushbarHelper.createError(message: state.toString()).show(context);
    }
  },

I'm using bloc state management for update state. I want to pop current screen to listen state changes from bloc listener but shows '!_debugLocked': is not true on console. There are some similar question I try there solutions like:

1st attempt:

WidgetsBinding.instance.addPostFrameCallback((_) {
   Navigator.pop(context);
});

2nd attempt:

Future.delayed(const Duration(milliseconds: 500), () {
   Navigator.pop(context);
}

My BlocListener:

BlocListener<CreateLabelCubit, CreateLabelState>(
  listener: (context, state) {
    if (state.networkState == NetworkState.success) {
      FlushbarHelper.createSuccess(message: 'Create Label Successful!')
          .show(context);
      //refresh label list
      labelListBloc.add(LabelListFetched());
      //& pop form create label page
      /*WidgetsBinding.instance?.addPostFrameCallback((_) {
        Navigator.pop(context);
      });*/
      Navigator.pop(context);
    } else if (state.networkState == NetworkState.failure) {
      FlushbarHelper.createError(message: state.toString()).show(context);
    }
  },

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

绻影浮沉 2025-02-18 05:43:20

您还可以这样做:

WidgetsBinding.instance.addPostFrameCallback((_) {
 Navigator.pop(context);
});

编辑

您必须使用上下文来自build> build不是来自bloclistener

这样的方法:

您可以在内部使用Navigator的 pop方法
navigator.pop(_context); [按照我的示例]

You can do this way also :

WidgetsBinding.instance.addPostFrameCallback((_) {
 Navigator.pop(context);
});

EDIT

You have to use context from Build method not from BlocListener

like this : enter image description here

and you can use inside Navigator's pop method
Navigator.pop(_context); [as per my example]

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文