如何在 flutter 应用程序导航到另一个页面后从小部件 return 到 StreamBuilder?

How to return from a widget to StreamBuilder after navigating to another page in flutter app?

所以第一张图片有第一页的代码,我的 flutter 应用程序中有一个 StreamBuilder,在那里我尝试导航到名为 PickupScreen 的有状态小部件,其中包含第二张图片中的代码,它给了我一个错误,上面写着 SetState (或在 build.So 期间调用的 markNeedsbuild() 我直接调用了小部件并且它有效但问题是我无法转到上一页我知道我不能使用 pop 但我需要一个返回上一页并显示的解决方案else code.Currently 我正在导航到另一个名为 HomePage 的页面。

你不能那样做。您可以根据 widget.channel.stream 管理屏幕状态,或者必须以不同的方式设计 UI,这样您实际上可以 push 在屏幕 1 上创建一个新屏幕,然后您将能够至 pop.

如果您仍想保持这样,您可以在第一个屏幕中执行以下操作:

return StreamBuilder(
  stream: widget.channel.stream,
  builder: (context, snapshot){
   if(snapshot.hasData && jsonDecode(snapshot.data['ntype'] == 10){
      WidgetsBinding.instance.addPostFrameCallback((_) => Navigator.push(context, MaterialPageRoute(builder: (_) => PickupScreen(data: jsonDecode(snapshot.data))));
    return const SizedBox();
 } else {
    return  _isLoading ? LoadingScreen() : Scaffold();
  }
});

另外,下次,请确保您 copy/paste 编写代码而不是屏幕截图,以便通过修改进行编辑。 :)