title: Reusing widget with cupertino navigation bar inside
body: <p>I have a "table list" widget that list some results and I want to reuse this widget from 2 different sources.
  This is the approach:</p>
  
  <ul>
  <li>"View1" -> <strong>Source 1</strong></li>
  <li>"View2" -> <strong>Source 2</strong></li>
  <li>"View3" -> Table with list <strong>TL</strong></li>
  </ul>
  
  <pre><code>+--------------------+
  | Source 1|          |
  +---------+     +----v-----+
                  |Table with|
                  |results   |
  +---------+     +----+-----+
  | Source 2|          ^
  +--------------------+
  </code></pre>
  
  <p>Every source has a route that pass the information inside the <strong>TL</strong>.</p>
  
  <p>This is the <code>build</code> function of the <strong>TL</strong>:</p>
  
  <pre class="lang-dart prettyprint-override"><code>@override
    Widget build(BuildContext context) {
      return CupertinoPageScaffold(
        navigationBar: CupertinoNavigationBar(middle: Text('Post Recenti')),
        child: PostsTableList(showPostForCategoryID)
        );
    }
  </code></pre>
  
  <p>But when the <strong>TL</strong> is shown I got the following error:</p>
  
  <pre><code>flutter: ══╡ EXCEPTION CAUGHT BY SCHEDULER LIBRARY ╞═════════════════════════════════════════════════════════
  flutter: The following assertion was thrown during a scheduler callback:
  flutter: There are multiple heroes that share the same tag within a subtree.
  flutter: Within each subtree for which heroes are to be animated (typically a PageRoute subtree), each Hero
  flutter: must have a unique non-null tag.
  flutter: In this case, multiple heroes had the following tag: Default Hero tag for Cupertino navigation bars
  flutter: with navigator NavigatorState#090ce(tickers: tracking 2 tickers)
  flutter: Here is the subtree for one of the offending heroes:
  flutter: # Hero(tag: Default Hero tag for Cupertino navigation bars with navigator NavigatorState#090ce(tickers: tracking 2 tickers), state: _HeroState#4dc1f)
  flutter: # └KeyedSubtree-[GlobalKey#9d61d]
  flutter: #  └_TransitionableNavigationBar-[GlobalKey#f21fd Navigation bar render box]
  flutter: #   └ClipRect(renderObject: RenderClipRect#5922f relayoutBoundary=up1)
  flutter: #    └BackdropFilter(renderObject: RenderBackdropFilter#ca8c7 relayoutBoundary=up2)
  flutter: #     └DecoratedBox(bg: BoxDecoration(color: Color(0xccf8f8f8), border: Border(bottom: BorderSide(Color(0x4c000000), 0.0, BorderStyle.solid))), renderObject: RenderDecoratedBox#0c666 relayoutBoundary=up3)
  flutter: #      └AnnotatedRegion&lt;SystemUiOverlayStyle&gt;(renderObject: RenderAnnotatedRegion&lt;SystemUiOverlayStyle&gt;#21621 relayoutBoundary=up4)
  flutter: #       └_PersistentNavigationBar
  flutter: #        └SizedBox(height: 64.0, renderObject: RenderConstrainedBox#826b3 relayoutBoundary=up5)
  flutter: #         └SafeArea(avoid left padding, avoid top padding, avoid right padding, avoid bottom padding)
  flutter: #          └Padding(padding: EdgeInsets(0.0, 20.0, 0.0, 0.0), renderObject: RenderPadding#bebdd)
  flutter: #           └MediaQuery(MediaQueryData(size: Size(375.0, 667.0), devicePixelRatio: 2.0, textScaleFactor: 1.0, padding: EdgeInsets(0.0, 0.0, 0.0, 50.0), viewInsets: EdgeInsets.zero, alwaysUse24HourFormat: false, accessibleNavigation: falsedisableAnimations: falseinvertColors: falseboldText: false))
  flutter: #            └NavigationToolbar
  flutter: #             └CustomMultiChildLayout(renderObject: RenderCustomMultiChildLayoutBox#18992)
  flutter: #              └LayoutId-[&lt;_ToolbarSlot.middle&gt;](id: _ToolbarSlot.middle)
  flutter: #               └DefaultTextStyle(inherit: true, color: Color(0xff000000), family: .SF UI Text, size: 17.0, weight: 600, letterSpacing: -0.1, softWrap: wrapping at box width, overflow: clip)
  flutter: #                └Semantics(container: false, properties: SemanticsProperties, label: null, value: null, hint: null, hintOverrides: null, renderObject: RenderSemanticsAnnotations#abf4c relayoutBoundary=up1)
  flutter: #                 └KeyedSubtree-[GlobalKey#0daf7 Middle]
  flutter: #                  └Text("Categorie")
  flutter: #                   └RichText(softWrap: wrapping at box width, maxLines: unlimited, text: "Categorie", renderObject: RenderParagraph#ad5eb relayoutBoundary=up2)
  flutter:
  flutter: When the exception was thrown, this was the stack:
  flutter: #0      Hero._allHeroesFor.visitor.&lt;anonymous closure&gt; (package:flutter/src/widgets/heroes.dart:210:15)
  flutter: #1      Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:220:12)
  flutter: #2      ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3755:14)
  flutter: #3      Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
  flutter: #4      ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3755:14)
  flutter: #5      Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
  flutter: #6      MultiChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:4948:16)
  flutter: #7      Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
  flutter: #8      SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:4848:14)
  flutter: #9      Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
  flutter: #10     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3755:14)
  flutter: #11     Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
  flutter: #12     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3755:14)
  flutter: #13     Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
  flutter: #14     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3755:14)
  flutter: #15     Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
  flutter: #16     SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:4848:14)
  flutter: #17     Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
  flutter: #18     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3755:14)
  flutter: #19     Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
  flutter: #20     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3755:14)
  flutter: #21     Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
  flutter: #22     SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:4848:14)
  flutter: #23     Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
  flutter: #24     MultiChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:4948:16)
  flutter: #25     Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
  flutter: #26     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3755:14)
  flutter: #27     Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
  flutter: #28     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3755:14)
  flutter: #29     Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
  flutter: #30     MultiChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:4948:16)
  flutter: #31     Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
  flutter: #32     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3755:14)
  flutter: #33     Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
  flutter: #34     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3755:14)
  flutter: #35     Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
  flutter: #36     SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:4848:14)
  flutter: #37     Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
  flutter: #38     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3755:14)
  flutter: #39     Hero._allHeroesFor.visitor (package:flutter/src/widgets/heroes.dart:225:15)
  flutter: #40     SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:4848:14)
  flutter: #41     Element.visitChildElements (package:flutter/src/widgets/framework.dart:2686:5)
  flutter: #42     Hero._allHeroesFor (package:flutter/src/widgets/heroes.dart:227:13)
  flutter: #43     HeroController._startHeroTransition (package:flutter/src/widgets/heroes.dart:655:53)
  flutter: #44     HeroController._maybeStartHeroTransition.&lt;anonymous closure&gt; (package:flutter/src/widgets/heroes.dart:630:11)
  flutter: #45     _WidgetsFlutterBinding&amp;BindingBase&amp;GestureBinding&amp;ServicesBinding&amp;SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:990:15)
  flutter: #46     _WidgetsFlutterBinding&amp;BindingBase&amp;GestureBinding&amp;ServicesBinding&amp;SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:938:9)
  flutter: #47     _WidgetsFlutterBinding&amp;BindingBase&amp;GestureBinding&amp;ServicesBinding&amp;SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:842:5)
  flutter: #48     _invoke (dart:ui/hooks.dart:154:13)
  flutter: #49     _drawFrame (dart:ui/hooks.dart:143:3)
  flutter: ════════════════════════════════════════════════════════════════════════════════════════════════════
  </code></pre>
  
  <p>Since I'm new to Flutter, <strong>is there something I forgot? Is there something I'm using in a wrong way?</strong></p>
  
  <p><a href="https://github.com/flutter/flutter/pull/22584/files" rel="nofollow noreferrer">Searching around</a> I also found this, but I don't know if this has nothing to do with it honestly:</p>
  
  <pre><code>By default, only one [CupertinoNavigationBar] or [CupertinoSliverNavigationBar]
  /// should be present in each [PageRoute] to support the default transitions.
  /// Use [transitionBetweenRoutes] or [heroTag] to customize the transition
  /// behavior for multiple navigation bars per route.
  </code></pre>