title: Navigator push same screen multiple times
body: <p>I need push new screen automatic on app startup (if user is login or sign out).</p>
  
  <p>I am use <code>scoped_model</code> for auth so need navigate when user value is change in model.</p>
  
  <p>I am follow Brian Egan suggestion here: <a href="https://github.com/brianegan/scoped_model/issues/43#issuecomment-442444143" rel="nofollow noreferrer">https://github.com/brianegan/scoped_model/issues/43#issuecomment-442444143</a> </p>
  
  <pre><code>class LoginScreenState extends State&lt;LoginScreen&gt; {
  
    @override
    void didChangeDependencies() {
      ScopedModel.of&lt;AuthModel&gt;(context).addListener(_navigationListener);
      super.didChangeDependencies();
    }
  
    @override
    void dispose() {
      ScopedModel.of&lt;AuthModel&gt;(context)
          .removeListener(_navigationListener);
      super.dispose();
    }
  
  
    void _navigationListener() {
  
  switch (ScopedModel.of&lt;AuthModel&gt;(context).AuthStatus) {
    case AuthStatus.NotAuth:
      Navigator.of(context).pushNamed(‘/Login’);
      break;
    case AuthStatus.Auth:
      Navigator.of(context).pushNamed(‘/Main’);
      break;
    case AuthStatus.Register:
      Navigator.of(context).pushNamed(‘/Register’);
      break;
  
    }
  </code></pre>
  
  <p><code>AuthStatus</code> is <code>Enum</code>. I change value in <code>Model</code>.</p>
  
  <p>This is push route correct, but have issue:</p>
  
  <p><strong>Same route is push many times. For example, same Login page is push at least 5 times.</strong></p>
  
  <p><strong>How to stop Navigator from push same screen multiple times?</strong></p>
  
  <p>Thanks!</p>