2015-06-22 25 views
17

Sto cercando di utilizzare il react-router ma quando scrivo un percorso semplice non funziona e la console mostra Uncaught TypeError: Impossibile leggere la proprietà 'toUpperCase' di indefinito.react-router Uncaught TypeError: Impossibile leggere la proprietà 'toUpperCase' di undefined

Altrimenti quando uso senza reagire-router che funzionano bene

var React = require('react'); 
var ReactRouter = require('react-router'); 
var Router = ReactRouter.Router; 
var Route = ReactRouter.Route; 

var App = React.createClass({ 
    render: function() { 
     return (
      <div>Hello World</div> 
     ); 
    } 
}); 


React.render((
    <Router> 
    <Route path="/" component={App} /> 
    </Router> 
), document.body); 

L'errore è da questa linea di reagire libreria

function autoGenerateWrapperClass(type) { 
    return ReactClass.createClass({ 
    tagName: type.toUpperCase(), //<---- 
    render: function() { 
     return new ReactElement(
     type, 
     null, 
     null, 
     null, 
     null, 
     this.props 
    ); 
    } 
    }); 
} 
+0

Può darci tutta la traccia dello stack? –

+0

Hai risolto questo? – vaughan

+1

Avendo lo stesso problema. –

risposta

1

La mia ipotesi è quando React.render è eseguito, il router non è ancora lì. provare questo

var routes = (
    <Route handler={App}> 
    </Route> 
); 

Router.run(routes,(Root) => { 
    React.render(<Root/>, document.body); 
}); 
0

Prova <Route> invece di <Router> in React.render().

1

Sto ancora girando la testa intorno a react-router, ma la prima cosa che controllerei è la versione che stai usando e la tua referenziazione. Sono stato in grado di farlo funzionare nel modo seguente ...

var React = require('react'); 
var ReactRouter = require('react-router'); 
var Route = ReactRouter.Route; 

var App = React.createClass({ 
    render: function() { 
     return (
      <div>Hello World</div> 
     ); 
    } 
}); 

var routes = (
    <Route handler={App}> 
    </Route> 
); 

window.onload = function() { 
    ReactRouter.run(routes, ReactRouter.HistoryLocation, function(Root, state) { 
     React.render(
      <Root />, 
      document.getElementById('main') 
     ) 
    }); 
}; 

Fondamentalmente ciò PhInside detto, ma avvolto in window.onload

+0

Ho dovuto modificare questa linea; per aggiungere path = "myurl". E ha funzionato. Grazie –

Problemi correlati