Reaccionar el enrutador sin representar el componente

Estamos utilizando react-router como así:

 ReactDOM.render( <Router> <Route path="/" component={AnyPic}> <Route path="p/:photoId" component={PhotoView} /> </Route> </Router>, document.getElementsByClassName("container")[0] ); var AnyPic = React.createClass({ render: function() { return ( <p>Hello world</p> ) } }); var PhotoView = React.createClass({ render: function(){ return ( <p>This is the photo view</p> ) } }); 

Después de include react-router , lo que solía ser solo localhost:8000 comenzó a verse como localhost:8000/#/?_k=wulhmi . No estoy seguro de dónde vinieron esos params adicionales.

De todos modos, al intentar acceder a localhost:8000/#/p/XYZ la página sigue volviendo a / . Cualquier ayuda sería muy apreciada.

La razón de esto es porque no estás trazando las routes de tus hijos. Verifique los documentos del enrutador de reacción .

Si agrega this.props.children a su componente AnyPic , todo funcionará:

 var AnyPic = React.createClass({ render: function() { return ( <div> <p>Hello world</p> {this.props.children} </div> ) } }); 

Como @robertklep señaló en el comentario, la cosa "adicional" en la URL se está agregando ya que The Router usa Hash History de manera pnetworkingeterminada, es probable que desee usar BrowserHistory para hacer eso, necesita instalar el module de historial : npm install history Vea el documentos aquí .