React-Router - 未捕获的TypeError:无法读取未定义的属性"route"

Rob*_*kin 10 javascript reactjs react-router redux react-router-v4

试图使用反应路由器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));
Run Code Online (Sandbox Code Playgroud)

这是完整的错误:

game.js:26838 Uncaught TypeError: Cannot read property 'route' of undefined
    at Route.computeMatch (game.js:26838)
    at new Route (game.js:26815)
    at game.js:15322
    at measureLifeCyclePerf (game.js:15102)
    at ReactCompositeComponentWrapper._constructComponentWithoutOwner (game.js:15321)
    at ReactCompositeComponentWrapper._constructComponent (game.js:15307)
    at ReactCompositeComponentWrapper.mountComponent (game.js:15215)
    at Object.mountComponent (game.js:7823)
    at ReactCompositeComponentWrapper.performInitialMount (game.js:15398)
    at ReactCompositeComponentWrapper.mountComponent (game.js:15285)
Run Code Online (Sandbox Code Playgroud)

小智 0

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

export default connect(mapStateToProps, mapDispatchToProps)(Manager);
Run Code Online (Sandbox Code Playgroud)

如果您想访问嵌套在 Route 中的组件内的历史信息,您将需要使用 withRouter HOC。您可以在这里找到详细信息:https ://reacttraining.com/react-router/web/api/withRouter