title: React Native - Navigator Recursive Children Crashes
body: <p>I am having a look at navigator component in React-Native but cannot get it to accept a child node that is already in the stack. E.g. if we take the facebook app for example. A user could search for a user, then click friends, then click another user. This crashes when I try to add it to the stack with the error</p>
  
  <pre><code>Invariant Violation: Expected a component class, got [object Object].
  </code></pre>
  
  <p>I have tried this via the standard navigator and currently the React-Native-Router. My current code looks like this</p>
  
  <pre><code>class OptionsBranch extends Component {
      render() {
          /*&lt;TouchableHighlight style={styles.spaceOut} onPress={() =&gt; {this.props.toRoute({name:"test", component:UserProfile})}}&gt;&lt;Text&gt;[push]&lt;/Text&gt;&lt;/TouchableHighlight&gt;*/
          return (
              &lt;View style={styles.container}&gt;
                  &lt;Text&gt;[OptionsScreen]&lt;/Text&gt;
                  &lt;TouchableHighlight style={styles.spaceOut} onPress={() =&gt; {this.props.toRoute({id:"x", name:"test", component:UserProfile})}}&gt;&lt;Text&gt;[push]&lt;/Text&gt;&lt;/TouchableHighlight&gt;
                  &lt;TouchableHighlight style={styles.spaceOut} onPress={() =&gt; {this.props.toBack()}}&gt;&lt;Text&gt;[pop]&lt;/Text&gt;&lt;/TouchableHighlight&gt;
              &lt;/View&gt;
          );
      }
  }
  </code></pre>
  
  <p>I can get this to work indefinitely so long as I never re-use a class. The moment I do, I get the error.</p>
  
  <p>I would post links to research but there isn't much out there for Navigator (Rather than NavigatorIOS) except for the samples included with the Framework and they seem to achieve ti but without passing a full route, which i would need.</p>
  
  <p>e.g.</p>
  
  <pre><code>&lt;NavButton onPress={() =&gt; { navigator.push(_getRandomRoute()) }} text="Push"/&gt;
  </code></pre>
  
  <p>If I try to use this in my code (without React-Native-Router) i.e.</p>
  
  <pre><code>&lt;TouchableHighlight onPress={() =&gt; { this.props.navigator.push({ name:"myComponent", component:myComponent }) }} /&gt;
  </code></pre>
  
  <p>it errors also.</p>
  
  <p>Why is this? Is this a limitation of Navigator? Is it an error in my code?</p>
  
  <p>A Boiler plate app that uses a TabBar and Navigator could have been quite helpful to learn from. NavigatorIOS is a little limited for customisation.</p>