Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 与';反应路由器&x27;。browserHistory我得到这个.props.children==未定义_Javascript_Reactjs_React Router_Browser History - Fatal编程技术网

Javascript 与';反应路由器&x27;。browserHistory我得到这个.props.children==未定义

Javascript 与';反应路由器&x27;。browserHistory我得到这个.props.children==未定义,javascript,reactjs,react-router,browser-history,Javascript,Reactjs,React Router,Browser History,我不明白browserHistory是如何改变应用程序执行的。这是代码工作正常: var React = require('react'), ReactDOM = require('react-dom'), Router = require('react-router'), Route = Router.Route, browserHistory = Router.browserHistory, hashHistory = Router.hashHisto

我不明白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>
);
var React=require('React'),
ReactDOM=require('react-dom'),
路由器=需要('react-Router'),
路由=路由器。路由,
browserHistory=路由器。browserHistory,
hashHistory=Router.hashHistory;
var Layout=React.createClass({
渲染:函数(){
返回(
{this.props.children}
)
}
});
变量路由=(
);
此代码运行正常,但我将哈希代码添加到我的url。所以我只是将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);
从'react router'导入{browserHistory};
ReactDOM.render((
//做点什么
),文件正文);

嗯,奇怪,我看不出你的代码有什么内在的错误。它说错误来自哪里?是render()中的this.props.children吗?还是从别的地方

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

import { browserHistory } from 'react-router';
ReactDOM.render (( 
 <Router history={browserHistory} />
   // Do Something
 </Router> 
), document.body);
从'react router'导入{browserHistory};
ReactDOM.render((
//做点什么
),文件正文);

根据马特·比尔博的话,我同意说以下几点可能更有帮助:

import { Router, Route, browserHistory } from 'react-router'
这样,在编写和阅读代码时,它就更具语义了。例如,生成的代码类似于:

var Layout = React.createClass({

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

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

ReactDOM.render(
  <Router history={browserHistory}>
    {routes}
  </Router>,
  document.body {/*or wherever want it to render from*/}
);

在顶部,以便以后引用时代码看起来更干净。

与Matt Bilbow所说的不同,我同意下面这样说可能更有帮助:

import { Router, Route, browserHistory } from 'react-router'
这样,在编写和阅读代码时,它就更具语义了。例如,生成的代码类似于:

var Layout = React.createClass({

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

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

ReactDOM.render(
  <Router history={browserHistory}>
    {routes}
  </Router>,
  document.body {/*or wherever want it to render from*/}
);
它位于顶部,以便以后引用时代码看起来更干净