title: How to use bloc pattern between two screens
body: <p>my main.dart file looks like this.</p>
  
  <pre><code>home: MultiBlocProvider(
        providers: [
          BlocProvider&lt;UserBloc&gt;(
            create: (BuildContext context) =&gt;   UserBloc()..add(GetUser(userId:"5e0b62023b75dd60e22edaad")),
          ),
           BlocProvider&lt;TodoBloc&gt;(
             create: (BuildContext context)=&gt; TodoBloc()..add(AddTodoEvent()),)
        ],
        child: FirstScreen(),
      ),
  </code></pre>
  
  <p>I want to navigate to the second screen on button press in FirstScreen.</p>
  
  <pre><code>var router = new MaterialPageRoute(
        builder: (BuildContext context){
          return BlocProvider&lt;UserBloc&gt;(
            create: (BuildContext context) =&gt;   UserBloc(),
            child: SecondScreen(),
          );
        });
    Navigator.of(context).push(router);
  </code></pre>
  
  <p>It works fine,but it will create new UserBloc initial state.
  What I want is to get the currect state on UserBlog.</p>
  
  <p>I tried <a href="https://github.com/felangel/bloc/issues/74#issuecomment-457969382" rel="noreferrer">this</a></p>
  
  <pre><code>UserBloc userBloc = BlocProvider.of&lt;UserBloc&gt;(context);
  BlocProvider&lt;CounterBloc&gt;(
    bloc: userBloc,
    child: SecondScreen()
   )
  </code></pre>
  
  <p>bloc gives an error.
  Is there any way to navigate to the SecondScreen and have the same state.</p>