2016-03-28 38 views
0

我不明白爲什麼下面的代碼在標題中產生錯誤。我檢查了類似的問題,但我沒有發現它們有幫助。反應:Uncaught不變違規:ReactDOM.render():無效的組件元素

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

爲什麼在ReactDOM.render的兩個參數周圍都有一對額外的括號? –

+0

正如@Liongold所說,你的parens在錯誤的地方,所以你通過一個參數而不是2. – azium

+0

哦,狗屎,謝謝 – hellogoodnight

回答

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 

額外的括號正在它,這樣你實際上是傳遞一個參數,而不是兩個。

相關問題