Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.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 React Router-未捕获类型错误:无法读取属性';路线';未定义的_Javascript_Reactjs_Redux_React Router_React Router V4 - Fatal编程技术网

Javascript React Router-未捕获类型错误:无法读取属性';路线';未定义的

Javascript React Router-未捕获类型错误:无法读取属性';路线';未定义的,javascript,reactjs,redux,react-router,react-router-v4,Javascript,Reactjs,Redux,React Router,React Router V4,尝试将react router v4与redux一起使用时遇到此错误,似乎在遵循文档,无法在其中找到任何信息,因此我不知所措: 未捕获的TypeError:无法读取未定义的属性“route” 这是我的密码: import React, {Component} from 'react'; import { BrowserRouter as Router, Route, Link, withRouter } from 'react-router-dom' import Menu fr

尝试将react router v4与redux一起使用时遇到此错误,似乎在遵循文档,无法在其中找到任何信息,因此我不知所措:

未捕获的TypeError:无法读取未定义的属性“route”

这是我的密码:

import React, {Component} from 'react';
import {
  BrowserRouter as Router,
  Route,
  Link,
  withRouter
} from 'react-router-dom'
import Menu from './Menu';
import { connect } from "react-redux";
import Play from './Play';
class Manager extends Component {
    render() {
        return(
             <Router>
                <div>
                  <Route exact path="/" component={Menu}/>
                  <Route path="/menu" component={Menu}/>
                  <Route path="/play" component={Play}/>
                </div>
              </Router>
        )
    }
}
export default withRouter(connect(mapStateToProps, mapDispatchToProps)(Manager));

您不需要使用比实际路由器更高的路由器:) 只需删除它:

export default connect(mapStateToProps, mapDispatchToProps)(Manager);

如果要访问嵌套在路由中的组件内的历史信息,则需要使用withRouter HOC。你可以在这里找到详细信息:

所以我在本地服务器上运行这个,当我在一个网页服务器上运行它时,它工作了。

我通过将我的
移动到我的

将你的路由器更改为一个名为“react router dom”的新react router 4.0

使用npm/Thread安装模块“react router dom”,这样定义路由器

别忘了进口。 从“react router dom”导入{BrowserRouter,Route}

         <BrowserRouter>
              <div>
              <Route exact path="/" component={Menu}/>
              <Route path="/menu" component={Menu}/>
              <Route path="/play" component={Play}/>
              </div>
          </BrowserRouter>

在这里,您使用的是4.0.0以上的最新版本

因此,没有可用的路由器。您需要在此版本中使用BrowserRouter

您的代码将被删除

import React, {Component} from 'react';
import {
  Switch,
 Route,
 Link,
 withRouter
} from 'react-router-dom'
import Menu from './Menu';
import { connect } from "react-redux";
import Play from './Play';
class Manager extends Component {
   render() {
    return(<div>
         <Switch>

              <Route exact path="/" component={Menu}/>
              <Route path="/menu" component={Menu}/>
              <Route path="/play" component={Play}/>

          </Switch></div>
    )
}
}
 export default withRouter(connect(mapStateToProps, mapDispatchToProps)(Manager));
import React,{Component}来自'React';
进口{
转换
路线,,
链接
带路由器
}从“反应路由器dom”
从“./菜单”导入菜单;
从“react redux”导入{connect};
从“/Play”导入播放;
类管理器扩展组件{
render(){
返回(
)
}
}
使用路由器导出默认值(connect(mapStateToProps,mapDispatchToProps)(管理器));
并在index.js文件中使用BrowserRouter呈现此组件

import { BrowserRouter } from 'react-router-dom';
ReactDOM.render((<BrowserRouter><Manager/></BrowserRouter>), document.getElementById('root'));
从'react router dom'导入{BrowserRouter};
ReactDOM.render((),document.getElementById('root');

您是否尝试将
从“react router dom”
更改为
从“react router”
?尝试从“react router”导入withRouter,如从“react router”导入{withRouter}不幸的是,这两种方法都不起作用。还没有解决方案吗?这个问题非常令人烦恼。我在这里回答了相同的问题。请检查一下,看看它是否也解决了您的问题。如果您仍然有问题,请随时给我发消息:)嗨,我收到了相同的错误“TypeError:无法读取未定义的属性“router”我通过执行npm安装react router dom和导入模块安装了react router dom模块,并尝试通过“this.props.router.push('/#/dashboard')重定向
import { BrowserRouter } from 'react-router-dom';
ReactDOM.render((<BrowserRouter><Manager/></BrowserRouter>), document.getElementById('root'));