当前位置: 首页 > 面试题库 >

用交换机反应路由器v4嵌套路由

万俟超
2023-03-14
问题内容

尝试执行以下操作,但不起作用。

ReactDOM.render(
  <Router>
    <div className="route-wrapper">
      <Switch>
        <App>
          <Route exact path="/" component={HomePage} />
          <Route path="/user" component={UserPage} />
        </App>
        <Route component={Err404} />
      </Switch>
    </div>
  </Router>,
  document.getElementById('main')
)

正如文档所述,Switch元素内仅允许Route和Redirect元素。如何在不显式地将HomePage和UserPage包裹在App中或没有将错误页面包裹在App中的情况下使其工作?


问题答案:

当我开始开发“通用React应用”时,第一页的加载是通过服务器端渲染完成的,但是我也遇到了类似的问题,因为React-
Router刚刚更新到4.0。您应该考虑如下重组应用程序:

ReactDOM.render(
  <Router>
    <div className="route-wrapper">
      <Switch>
        <Route path="/" component={App} />
        <Route component={Err404} />
      </Switch>
    </div>
  </Router>,
  document.getElementById('main')
)

将App组件重构如下:

class App extends React.Component {
  render() {
    return <div>
      <Switch>
        <Route exact path="/" component={HomePage} />
        <Route exact path="/user" component={UserPage} />
      </Switch>
    </div>;
  }
}


 类似资料:
  • 我在想这样的事情: 前台有一个不同的布局和风格与管理区域。所以在frontpage中的路由是home、about等等,其中一个应该是子路由。 /home应该呈现到Frontpage组件中,而/admin/home应该呈现在后端组件中。 最终解决方案: 这是我现在使用的最终解决方案。这个例子也像传统的404页面一样有一个全局错误组件。

  • 我有一个名为Dashboard的父组件,它被呈现为路由,如下所示: 我试着嘲笑每个人在嵌套路由上的解决方案,但我似乎无法解决我的问题。

  • 我读了这个文件关于反应路由器交换机 我理解交换机和路由的定义 但有些地方还是不能理解 如果我只想选择一条路径进行渲染,我们可以使用如下开关 我不明白的一点是,我可以在没有开关的情况下获得同样的效果 那么,我们为什么要使用交换机呢?我们什么时候需要使用开关? 我发现一个需要使用开关的情况 如果我想在没有路径匹配时呈现特定的组件 我们需要像这样包装路由开关 我说得对吗?

  • 我的目标是让http://mydomain/route1呈现React组件Component1,让http://mydomain/route2呈现component2。因此,我认为编写如下路线是很自然的: http://mydomain/route1按预期工作,但http://mydomain/route2反而呈现Component1。 然后我读了这个问题,并将路线改为:

  • 我一直在读这篇文章:多嵌套路由反应路由器多姆v4和一些喜欢它,我不能让我的情况下工作。 这里有两个repl在尝试文章中描述的每种方法——也许我错过了什么? 如果您可以让这些REPL中的任何一个工作,我可能已经准备好了——但我更喜欢模块化的方法。谢谢你的帮助。 模块化为路线https://codepen.io/anon/pen/XGPKwZ?editors=0010 航线周围的集装箱https://