Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.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 反应路由器:无法读取属性';推动';未定义的_Javascript_Reactjs - Fatal编程技术网

Javascript 反应路由器:无法读取属性';推动';未定义的

Javascript 反应路由器:无法读取属性';推动';未定义的,javascript,reactjs,Javascript,Reactjs,我正在和路由器斗争。 我只想构建一个附带菜单,其中包含一个登录链接,该链接将在右侧窗格中显示登录comp。 这就是HTML: <main id="buschat-app"></main> <div id="menu"></div> 我做错了什么?react router如何知道在右侧窗格中呈现登录组件? 抱歉,我是新来的…您在React组件中缺少上下文引用 static contextTypes = {router: PropTypes.obj

我正在和路由器斗争。 我只想构建一个附带菜单,其中包含一个登录链接,该链接将在右侧窗格中显示登录comp。 这就是HTML:

<main id="buschat-app"></main>
<div id="menu"></div>
我做错了什么?react router如何知道在右侧窗格中呈现登录组件?
抱歉,我是新来的…

您在React组件中缺少上下文引用

 static contextTypes = {router: PropTypes.object.isRequired};
参考:

删除

ReactDOM.render(,document.getElementById('buschat-app'))

换成

ReactDOM.render((
    <Router history={hashHistory}>
        <Route path="/" component={Buschat}/>
        <Route path="login" component={Login}/>
    </Router>
), document.getElementById('buschat-app'));
ReactDOM.render((
),document.getElementById('buschat-app');
Buschat
类中,添加
组件


我希望这有帮助

在我看来很奇怪。您是否正在重命名应与最新版本的React-router一起使用的
browserHistory
import?不,我是从这个示例中获取的:他们说要像这样导入:从“React-router”您的Buschat导入{router,Route,hashHistory},因此,菜单组件与react路由器组件不在同一应用程序中。您只能在路由器所在的同一应用程序中使用
Link
。99%的React应用程序只调用
ReactDOM.render
一次创建一个React应用程序。
Uncaught TypeError: Cannot read property 'push' of undefined
 static contextTypes = {router: PropTypes.object.isRequired};
ReactDOM.render((
    <Router history={hashHistory}>
        <Route path="/" component={Buschat}/>
        <Route path="login" component={Login}/>
    </Router>
), document.getElementById('buschat-app'));