使用 React 和 Semantic-Ui 更新菜单中的活动项

Posted

技术标签:

【中文标题】使用 React 和 Semantic-Ui 更新菜单中的活动项【英文标题】:Update active item in menu with React and Semantic-Ui 【发布时间】:2020-11-16 10:10:30 【问题描述】:

如何将菜单中的项目更改为活动项目? 目前,第一项“主页”始终设置为活动项。目标是,如果我单击其他项目,则该项目将设置为活动状态,而其他项目将不再处于活动状态。

return (
            <div className="ui menu">
                <Link to="/">
                    <img 
                    style=
                        padding: 20
                    
                    className="ui image" 
                    src=Rmarketingv1
                    
                    />
                </Link>
                <div 
                    style=
                        margin: 40
                    
                    className="ui borderless horizontal right secondary menu"
                    >
                    <div className="active item">
                        <Link to="/">
                            <h2>
                                Home
                            </h2>
                        </Link>
                    </div>
                    <div className="item">
                        <Link to="/Service">
                            <h2>
                                Tjenester
                            </h2>
                        </Link>
                    </div>
                    <div className="item">
                        <Link to="/work">
                            <h2>
                                Jobbmuligheter
                            </h2>
                        </Link>
                    </div>
                    <div className="item">
                        <Link to="/contact">
                            <h2>
                                Kontakt
                            </h2>
                        </Link>
                    </div>
                </div>
            </div>
        );

【问题讨论】:

【参考方案1】:

React 路由器具有 &lt;NavLink&gt; 属性,该属性具有 activeClassName 属性。所以为了让事情顺利进行,请像这样更改您的&lt;Links&gt;

<div className="item">
    <NavLink to="/" activeClassName="active">
        <h2>
            Home
        </h2>
    </NavLink>
</div>

免责声明:这会将“活动”类设置为您的元素,而不是像上面示例中的 div。确保也调整 css 代码!

【讨论】:

【参考方案2】:

您可以只使用NavLink 而不是Link。你可以给它一个activeClassName 属性,只要路由匹配to 属性,className 就会被添加到那个链接中。

在此处阅读文档:https://github.com/ReactTraining/react-router/blob/master/packages/react-router-dom/docs/api/NavLink.md

【讨论】:

我将如何准确地实施这个? 只需导入 NavLink 并使用它而不是 Link,并添加一个 activeClassName="some-semantic-ui-class"。或者,如果您想添加自己的样式,请添加自定义类并转到您的样式文件并编写一些 css 来设置该类名的样式。

以上是关于使用 React 和 Semantic-Ui 更新菜单中的活动项的主要内容,如果未能解决你的问题,请参考以下文章

在 React 中使用 semantic-ui

css #react #semantic-ui

如何将 Semantic-UI 添加到 Phoenix

semantic-ui前端UI框架

从Semantic-UI CSS中删除数据:application / x-font-ttf和data:application / font-woff?

react