【问题标题】:React router nested not working嵌套的反应路由器不起作用
【发布时间】:2017-10-27 06:00:05
【问题描述】:

我正在尝试在我的提供程序中创建路由,但它不适用于嵌套级别。

直到一级它工作正常。

在下面找到代码sn-p

    render(
  <Provider store={store}>
  <Router history={browserHistory}>
    <Route path="/" component={PageTemplate}>
      <Route path="/login" component={Login}/>
      <Route path="/secure" component={BodyTemplate}>
        <Route path="page1" component={Page1}/>
        <Route path="page2" component={Page2}/>
        <Route path="page3" component={Page3}/>
      </Route>
      <Route path="*" component={InvalidPage}/>
    </Route>
  </Router>
</Provider>, document.getElementById('app'))

如果我打开 URL localhost:3000/login 它工作正常

但是如果我给出 URL localhost:3000/secure/page1 我在浏览器控制台中看到如下错误

bundle.min.js:1 Uncaught SyntaxError: Unexpected token

如果我的路由器配置有任何问题,请帮助我。

【问题讨论】:

  • 尝试/page1/page2/page3 以获得path 属性。
  • 我试过...它不工作..即使我只是在第一级 URL 后给出“/”我收到错误...例如:“localhost:3000/login”但“localhost:3000/login”工作正常
  • 您生成的 index.html 文件是什么样的?具体来说,bundle.min.js 文件是如何被包含进来的?
  • 得到了我所说的潜在问题 更改为

标签: reactjs


【解决方案1】:

更改脚本加载
<script src="bundle.min.js"></script>

<script src="/bundle.min.js"></script>

当我们进入第二级,即localhost:3000/login/bundle.min.js 时,它正在尝试从您当前的 url 加载,这是错误的,将其更改为 root url 使其工作localhost:3000/bundle.min.js

【讨论】:

    猜你喜欢
    • 2015-11-25
    • 1970-01-01
    • 1970-01-01
    • 2019-02-18
    • 2017-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-18
    相关资源
    最近更新 更多