Menu.Item NavLink 始终处于活动状态的问题语义 UI React
Issue with Menu.Item NavLink always active Semantic UI React
我正在使用语义 ui 反应,我正在使用带 Menu.Item 的 NavLink 进行路由。
下面是我的导航栏组件:
const Navbar = () => (
<div>
<Container>
<Menu secondary stackable widths={4}>
<Menu.Item>
<img src={Logo} alt="header" />
</Menu.Item>
<Menu.Item as={NavLink} to="/" name="home">
<Icon name="home" size="large" />
<p>Home</p>
</Menu.Item>
<Menu.Item as={NavLink} to="/data" name="data">
<Icon name="dashboard" size="large" />
<p>Dashboard</p>
</Menu.Item>
<Menu.Item as={NavLink} to="/user" name="user">
<Icon name="user" size="large" />
<p>User</p>
</Menu.Item>
</Menu>
</Container>
</div>
);
现在问题出在这里。路由工作正常,但由于某种原因 'Home' 菜单项 始终处于活动状态 。
然而其他两条路线工作正常(即仅在路线正确时设置 'active')
Here is what it looks like with /dashboard route active
我的App.jsx中的路线代码:
<Switch>
<Route exact path="/" component={Home} />
<Route path="/data" component={Dashboard} />
<Route path="/user" component={User} />
</Switch>
上面的照片应该可以清楚地说明问题!
如有任何意见,我们将不胜感激!!
可以从上面的 AngelSalazar 确认,这修复了它。谢谢!
<Menu.Item as={NavLink} exact to="/" name="home">
这是我的设置,可帮助解决问题。
我收到以下错误:
Warning: validateDOMNesting(...): <a> cannot appear as a descendant of <a>.
in a (created by Link)
in Link (created by Route)
in Route (created by NavLink)
in NavLink (created by MenuItem)
in MenuItem (at NavBar.js:47)
in a (created by Link)
in Link (created by Route)
in Route (created by NavLink)
in NavLink (at NavBar.js:46)
in div (created by Menu)
in Menu (at NavBar.js:20)
in NavBar (at App.js:26)
in div (at App.js:25)
in Router (created by BrowserRouter)
in BrowserRouter (at App.js:24)
in div (at App.js:22)
in App (at index.js:6)
主要组件设置在 App.js 我进行路由的地方
<Router>
<div>
<NavBar />
<Route exact path="/" component={LoginSignUpContainer}></Route>
<Router>
这里有我的 NavBar 组件,它包含我遇到问题的地方。
class NavBar extends Component{
constructor(){
super();
this.state={
activeItem: "home"
}
}
handleItemClick = (e, { name }) => this.setState({ activeItem: name })
render() {
const { activeItem } = this.state
return (
<Menu>
<NavLink to="/bills">
<Menu.Item
name='bills'
active={activeItem === 'bills'}
onClick={this.handleItemClick}>
<Icon name="payment"/>Bills
</Menu.Item>
<Menu>
我删除了 NavLink 标签并在 Menu.Item 标签中添加了:
as={NavLink}
to="bills"
更新后:
<Menu.Item
as={NavLink}
to="/bills"
name='bills'
active={activeItem === 'bills'}
onClick={this.handleItemClick}>
<Icon name="payment"/>Login
</Menu.Item>
我正在使用语义 ui 反应,我正在使用带 Menu.Item 的 NavLink 进行路由。
下面是我的导航栏组件:
const Navbar = () => (
<div>
<Container>
<Menu secondary stackable widths={4}>
<Menu.Item>
<img src={Logo} alt="header" />
</Menu.Item>
<Menu.Item as={NavLink} to="/" name="home">
<Icon name="home" size="large" />
<p>Home</p>
</Menu.Item>
<Menu.Item as={NavLink} to="/data" name="data">
<Icon name="dashboard" size="large" />
<p>Dashboard</p>
</Menu.Item>
<Menu.Item as={NavLink} to="/user" name="user">
<Icon name="user" size="large" />
<p>User</p>
</Menu.Item>
</Menu>
</Container>
</div>
);
现在问题出在这里。路由工作正常,但由于某种原因 'Home' 菜单项 始终处于活动状态 。
然而其他两条路线工作正常(即仅在路线正确时设置 'active')
Here is what it looks like with /dashboard route active
我的App.jsx中的路线代码:
<Switch>
<Route exact path="/" component={Home} />
<Route path="/data" component={Dashboard} />
<Route path="/user" component={User} />
</Switch>
上面的照片应该可以清楚地说明问题!
如有任何意见,我们将不胜感激!!
可以从上面的 AngelSalazar 确认,这修复了它。谢谢!
<Menu.Item as={NavLink} exact to="/" name="home">
这是我的设置,可帮助解决问题。 我收到以下错误:
Warning: validateDOMNesting(...): <a> cannot appear as a descendant of <a>.
in a (created by Link)
in Link (created by Route)
in Route (created by NavLink)
in NavLink (created by MenuItem)
in MenuItem (at NavBar.js:47)
in a (created by Link)
in Link (created by Route)
in Route (created by NavLink)
in NavLink (at NavBar.js:46)
in div (created by Menu)
in Menu (at NavBar.js:20)
in NavBar (at App.js:26)
in div (at App.js:25)
in Router (created by BrowserRouter)
in BrowserRouter (at App.js:24)
in div (at App.js:22)
in App (at index.js:6)
主要组件设置在 App.js 我进行路由的地方
<Router>
<div>
<NavBar />
<Route exact path="/" component={LoginSignUpContainer}></Route>
<Router>
这里有我的 NavBar 组件,它包含我遇到问题的地方。
class NavBar extends Component{
constructor(){
super();
this.state={
activeItem: "home"
}
}
handleItemClick = (e, { name }) => this.setState({ activeItem: name })
render() {
const { activeItem } = this.state
return (
<Menu>
<NavLink to="/bills">
<Menu.Item
name='bills'
active={activeItem === 'bills'}
onClick={this.handleItemClick}>
<Icon name="payment"/>Bills
</Menu.Item>
<Menu>
我删除了 NavLink 标签并在 Menu.Item 标签中添加了:
as={NavLink}
to="bills"
更新后:
<Menu.Item
as={NavLink}
to="/bills"
name='bills'
active={activeItem === 'bills'}
onClick={this.handleItemClick}>
<Icon name="payment"/>Login
</Menu.Item>