saj*_*saj 0 reactjs react-router-dom
导航工作,家庭链接总是活跃其他链接都可以.添加为组件,没有道具.
HTML
<Menu/>
Run Code Online (Sandbox Code Playgroud)
CSS
.active{
background-color:#ff6a00;
}
Run Code Online (Sandbox Code Playgroud)
JS
import React, { Component } from 'react';
import './menu.css';
import { NavLink } from 'react-router-dom'
export default class TopMenu extends Component {
render() {
return (
<div className="ui container">
<div className="ui stackable menu">
<div className="item">
<NavLink to='/' >
<i aria-hidden="true" className="home icon" ></i>
Home
</NavLink>
</div>
<div className="item">
<NavLink to='/about' >
<i aria-hidden="true" className="circle info icon" >
</i>
About
</NavLink>
</div>
<div className="item" >
<NavLink to='/Settings'>
<i aria-hidden="true" className="cogs icon red" ></i>
Settings
</NavLink>
</div>
</div>
</div>
);
}
}
Run Code Online (Sandbox Code Playgroud)
任何想法,为什么家里总是活跃?
Shu*_*rda 20
您需要提及end回家路线。默认情况下/与其所有后代路径匹配,/about或者/settings也匹配。
<NavLink to="/" end>
Home
</NavLink>
Run Code Online (Sandbox Code Playgroud)
如果使用 end 属性,它将确保当其后代路径匹配时,该组件不会被匹配为“活动”。
文档: https: //reactrouter.com/en/6/components/nav-link
你必须为你的家乡路线'/'指定确切的道具,因为这与所有其他路线相匹配,这就是'/'始终有效的原因.
<NavLink to='/' exact={true}>
<i aria-hidden="true" className="home icon" ></i>
Home
</NavLink>
Run Code Online (Sandbox Code Playgroud)
小智 5
请务必提及end回家 ( '/') 路线。
<NavLink to='/' end>
<i aria-hidden="true" className="home icon" ></i>
Home
</NavLink>
Run Code Online (Sandbox Code Playgroud)