我不明白为什么下面的代码会产生标题中的错误。我检查了类似的问题,但没有发现它们有帮助。
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')
));
最佳答案
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
额外的括号使您实际上传递一个参数而不是两个。
关于javascript - React : Uncaught Invariant Violation: ReactDOM. render():无效的组件元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36266813/