【问题标题】:React-semantic-ui with route errors带有路由错误的 React-semantic-ui
【发布时间】:2018-09-12 14:15:59
【问题描述】:

我有一个从 react semantic-ui 导入的基本菜单

<Menu secondary vertical>
        <Menu.Item
          name='account'
          active={activeItem === 'account'}
          onClick={this.handleItemClick}
        />

我显然有更多的项目,我修改了菜单中的每个项目都链接到不同的页面:

<Menu secondary vertical>
         <Link to="/account">
         <Menu.Item
          name='account'
          active={activeItem === 'account'}
          onClick={this.handleItemClick}
        />
        </Link>
        
 

代码显然按预期工作,但是我收到错误

<a> cannot appear as a descendant of <a>

所以我将代码修改为&lt;Menu.item as='div',它仍然可以工作,但是它失去了一些功能。基本上在我能够将鼠标悬停在菜单项上之前,它会在图片中显示结果。要在“帐户”上获得相同的结果,我必须单击两次。如果我将 Menu.item 保留为“a”,它会起作用。 有什么办法可以解决吗? Picture 1

【问题讨论】:

    标签: javascript reactjs semantic-ui semantic-ui-react


    【解决方案1】:

    您不应该那样使用 Link 和 Menu.Item。

    你可以做一些类似于你已经用财产做的事情。你可以说

    <Menu.Item 
       as={Link}
       to={"/account"}
       name='account'
       active={activeItem === 'account'}
       onClick={this.handleItemClick}
    >
        Account
    </Menu.Item>
    

    这意味着您需要从 react-router-dom 导入 {Link},我想您已经这样做了

    【讨论】:

    • 我能否找出为什么我的答案被否决了,因为它在我使用 react semantic ui 制作的项目中完美运行?
    • 它也适用于我。感谢分享。我没有投反对票,也不能投赞成票,因为我的帐户是全新的
    【解决方案2】:

    一种解决方法(如果由于某种原因不需要锚标记)是在方法 handleItemclick 中处理它:

    handleItemClick = (e) => {
      //..code
      this.props.history.push('/myroute');
    }

    【讨论】:

    • 他不需要锚标签。如果您查看 DOM 结构,Menu.Item 是锚标记。
    • @LazarNikolic 他的问题确实是 Link 和 Menu.Item 都呈现为锚点。如果他想要一个快速的解决方案并避免 css 调整,这将在不使用 的情况下正常工作
    • @LazarNikolic 你的解决方案也是有效的
    • 谢谢,我考虑了
    猜你喜欢
    • 1970-01-01
    • 2017-07-09
    • 1970-01-01
    • 2017-12-09
    • 2017-09-08
    • 1970-01-01
    • 2021-07-13
    • 2017-06-01
    • 1970-01-01
    相关资源
    最近更新 更多