我不了解browserHistory如何更改应用执行。这是代码工作正常:

var React = require('react'),
    ReactDOM = require('react-dom'),
    Router = require('react-router'),
    Route = Router.Route,
    browserHistory = Router.browserHistory,
    hashHistory = Router.hashHistory;

var Layout = React.createClass({

    render: function () {
        return (
            <div>
                <SideMenu />
                {this.props.children}
            </div>
        )
    }
});

var routes = (
    <Router.Router history={hashHistory}>
        <Route path="/" component={Layout}>

            <Route path="auth/startpage" component={require('./startpage')}/>

        </Route>
    </Router.Router>
);


这段代码可以正常工作,但是我将哈希代码添加到了我的网址。所以我就这样将hashHistory更改为browserHistory:

<Router.Router history={browserHistory}>


...然后{this.props.children}是不确定的!没有错误。反应0.14.7,反应路由器2.0.0。请告诉我我想念什么?

最佳答案

嗯,很奇怪,我看不到您的代码有任何内在的错误。它说错误是从哪里来的?是render()中的this.props.children吗?还是其他地方?

您可以尝试重组文件。以下内容适用于您使用的相同版本的react-router:

import { browserHistory } from 'react-router';
ReactDOM.render ((
 <Router history={browserHistory} />
   // Do Something
 </Router>
), document.body);

09-25 16:32