2016-03-28 6 views
0

Ich verstehe nicht, warum der folgende Code den Fehler im Titel erzeugt. Ich habe ähnliche Fragen geprüft, aber ich fand sie nicht hilfreich.React: Uncaught Invariant Verletzung: ReactDOM.render(): Ungültige Komponente Element

import React from 'react'; 
import ReactDOM from 'react-dom'; 
import { Router, Route, IndexRoute, browserHistory } from 'react-router'; 
import { createHashHistory } from 'history'; 

import Menu from './pages/Menu'; 
import BookShelf from './pages/BookShelf'; 
import BorrowBook from './pages/BorrowBook'; 

const App = React.createClass({ 
    contextTypes: { 
    router: React.PropTypes.object.isRequired 
    }, 
    render() { 
    return (
     <Menu /> 
    ); 
    } 
}); 

ReactDOM.render((
    <Router history={browserHistory} onUpdate={() => window.scrollTo(0, 0)}> 
    <Route path="/" component={App}/> 
    <Route path="/menu" component={Menu} /> 
    <Route path="/bookshelf" component={BookShelf} /> 
    <Route path="/borrowbook/:bookId" component={BorrowBook} /> 
    </Router>, 
    document.getElementById('app') 
)); 
+2

Warum haben Sie ein zusätzliches Paar Klammern um beide Argumente zu ReactDOM.render? –

+0

Wie @Liongold gesagt hat, sind deine Parens an der falschen Stelle, also passierst du ein Argument anstelle von 2. – azium

+0

oh Scheiße, danke – hellogoodnight

Antwort

2
ReactDOM.render((// extra parenthesis here 
    <Router history={browserHistory} onUpdate={() => window.scrollTo(0, 0)}> 
    <Route path="/" component={App}/> 
    <Route path="/menu" component={Menu} /> 
    <Route path="/bookshelf" component={BookShelf} /> 
    <Route path="/borrowbook/:bookId" component={BorrowBook} /> 
    </Router>, 
    document.getElementById('app') 
)); // extra parenthesis here 

Die zusätzliche Klammer es machen, so dass Sie tatsächlich statt zwei ein Argument sind vorbei.

Verwandte Themen