javascript - 如何用react-router替换react组件

标签 javascript reactjs react-router

基本上我渲染这个 react 组件:

  <Grid>
    <Him className="him"><Link to="/him">Him</Link></Him>
    <Her className="her"><Link to="/her">Her</Link></Her>
  </Grid>

基本上只有 2 个盒子,上面有他和她的链接。

当您点击他时,我有这条路线可以正确呈现我的类别。

<Route
        path="/him"
        render={() => (
          <Categories
            products={products}
            addToBasket={addToBasket}
          />
        )}
      />

但是,它将此组件呈现在他/她的组件下方。这可能听起来很愚蠢,但我如何让它将它们呈现在顶部或代替它?

我可以将组件的状态设置为visible: false 并切换它,但这看起来有点困惑。

本教程中的所有内容:https://reacttraining.com/react-router/web/example/no-match ,似乎让它们通过永远不会消失的 header 进行路由,而我想单击应用程序正文中的链接,然后显示不同的内容。有什么想法吗?

最佳答案

您还必须将网格包装在 route 。你可以做这样的事情

<Route path='/' exact component={LinkComponent} />

代码中的其他地方:

const LinkComponent = () => (
  <Grid>
    <Him className="him"><Link to="/him">Him</Link></Him>
    <Her className="her"><Link to="/her">Her</Link></Her>
  </Grid>
);

这样,如果您转到主路线,您会看到网格,当您单击链接时,您会转到相应的路线,并且网格将被隐藏。

关于javascript - 如何用react-router替换react组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47940106/

相关文章:

reactjs - 阻止用户访问其他路由 - ReactJS - React-Router -

javascript - 使用 CommonJS 的 react 路由器历史记录

javascript - moment.js – 获取数组的下一个现有日期

javascript - jquery 解除绑定(bind)事件似乎仍然存在于函数之外

reactjs - 如何访问媒体查询样式组件中的 postcss 变量?

css - 使用 SX 属性创建动画 - MUI v5

javascript - 在 React js 的 TextField 中放置长度约束

javascript - 选择器 "app"没有匹配任何元素

javascript - 有没有办法在重新加载页面时覆盖浏览器重新发送表单提示?

reactjs - 将数据从 gatsby-node.js 传递到 createPages API