如何在两个屏幕之间使用块图案

问题描述 投票:0回答:2

我的main.dart文件看起来像这样。

home: MultiBlocProvider(
      providers: [
        BlocProvider<UserBloc>(
          create: (BuildContext context) =>   UserBloc()..add(GetUser(userId:"5e0b62023b75dd60e22edaad")),
        ),
         BlocProvider<TodoBloc>(
           create: (BuildContext context)=> TodoBloc()..add(AddTodoEvent()),)
      ],
      child: FirstScreen(),
    ),

我想导航到FirstScreen中按下按钮的第二个屏幕。

var router = new MaterialPageRoute(
      builder: (BuildContext context){
        return BlocProvider<UserBloc>(
          create: (BuildContext context) =>   UserBloc(),
          child: SecondScreen(),
        );
      });
  Navigator.of(context).push(router);

可以正常工作,但是会创建新的UserBloc初始状态。我想要的是在UserBlog上获得当前状态。

我尝试过this

UserBloc userBloc = BlocProvider.of<UserBloc>(context);
BlocProvider<CounterBloc>(
  bloc: userBloc,
  child: SecondScreen()
 )

bloc给出错误。有什么方法可以导航到SecondScreen并具有相同的状态。

flutter bloc
2个回答
0
投票

请检查一次此博客文章https://blog.geekyants.com/state-management-in-flutter-7df833e6f3bd。它解释了使用bloc模式的清晰过程,而没有任何插件支持。如果您需要其他帮助,请告诉我。


0
投票

每次调用BlocProvider时,都会创建bloc类的新实例。

© www.soinside.com 2019 - 2024. All rights reserved.