【问题标题】:Sub routes not working in react router v4子路由在反应路由器 v4 中不起作用
【发布时间】:2018-01-26 22:36:37
【问题描述】:

我正在尝试在 react 路由器中嵌套路由,但 \sports\cricket 这样的子路由没有出现。以下是代码:

index.js

const Root = () => {
  return (
    <Router>
      <div>
        <Route exact path="/" component={Home}/>
        <Route path="/sports" component={Sports} />
      </div>
    </Router>
  );
}; 

sports.js

return (
      <div>
        <Route path="cricket" component={Cricket} />
      </div>
    );

每当我尝试获取 /sports/cricket 时,控制台都会记录错误 404:

编辑 1: 将嵌套路由移到 Sportscomponent 内。

【问题讨论】:

标签: javascript reactjs react-router


【解决方案1】:

嵌套路由在 v4 中不起作用。在父路由指向的组件中分配子路由。像这样:

index.js

const Root = () => {
  return (
    <Router history={browserHistory}>
      <div>
        <Route exact path="/" component={Home}/>
        <Route path="/sports" component={Sports}/>
      </div>
    </Router>
  );
}; 

sports.js

return (
  <div>
    <Route path="/sports/cricket" component={Cricket} />
  </div>
);

【讨论】:

  • 还是不行。在控制台中引发相同的错误。
  • 而不是BrowserRouterHashRouter 替换它,看看localhost:3000/#/sports/cricket 是否有效。原因是,如果你没有在服务器上配置你的路由,那么你会得到 404 not found on react browser routes。
猜你喜欢
  • 1970-01-01
  • 2017-02-24
  • 1970-01-01
  • 1970-01-01
  • 2017-08-10
  • 2017-12-06
  • 1970-01-01
  • 2017-09-16
  • 2015-11-25
相关资源
最近更新 更多