react-router-dom v6 NavLink 始终处于活动状态
react-router-dom v6 NavLink is always active
我遵循了从 v5 指南升级,但我无法使 NavLink 组件正常工作。
https://reactrouter.com/docs/en/v6/upgrading/v5#upgrading-from-v5
v6 导航链接:
<NavLink
className={(isActive) =>
cx(isActive ? classes.linkActive : classes.link)
}
to="/seafarers"
end
>
Seafarers
</NavLink>
<NavLink
className={(isActive) =>
cx(isActive ? classes.linkActive : classes.link)
}
end
to="/"
>
Planning
</NavLink>
路线
<BrowserRouter>
<Routes>
<Route path="/" element={<LoginScreen />} />
<Route path="login" element={<LoginScreen />} />
<Route path="forgot-password" element={<ForgotPasswordScreen />} />
<Route path="seafarers" element={<SeafarersScreen />} />
</Routes>
</BrowserRouter>
“/”和“/海员”均已激活class
注意:NavLink 元素位于 SeafarersScreen 屏幕中
我该如何解决这个问题?
对于react-router-dom v6
此示例演示如何使用 useMatch()
和 useResolvedPath()
挂钩制作自定义 <Link>
组件以在 link 处于“活动”状态时呈现不同的内容。
结果我不得不解构 className 的 属性,因为三元运算符总是为对象返回 true
<NavLink
className={({isActive}) => //(isActive) --> ({isActive})
cx(isActive ? classes.linkActive : classes.link)
}
to="/seafarers"
end
>
Seafarers
</NavLink>
我遵循了从 v5 指南升级,但我无法使 NavLink 组件正常工作。
https://reactrouter.com/docs/en/v6/upgrading/v5#upgrading-from-v5
v6 导航链接:
<NavLink
className={(isActive) =>
cx(isActive ? classes.linkActive : classes.link)
}
to="/seafarers"
end
>
Seafarers
</NavLink>
<NavLink
className={(isActive) =>
cx(isActive ? classes.linkActive : classes.link)
}
end
to="/"
>
Planning
</NavLink>
路线
<BrowserRouter>
<Routes>
<Route path="/" element={<LoginScreen />} />
<Route path="login" element={<LoginScreen />} />
<Route path="forgot-password" element={<ForgotPasswordScreen />} />
<Route path="seafarers" element={<SeafarersScreen />} />
</Routes>
</BrowserRouter>
“/”和“/海员”均已激活class
注意:NavLink 元素位于 SeafarersScreen 屏幕中
我该如何解决这个问题?
对于react-router-dom v6
此示例演示如何使用 useMatch()
和 useResolvedPath()
挂钩制作自定义 <Link>
组件以在 link 处于“活动”状态时呈现不同的内容。
结果我不得不解构 className 的 属性,因为三元运算符总是为对象返回 true
<NavLink
className={({isActive}) => //(isActive) --> ({isActive})
cx(isActive ? classes.linkActive : classes.link)
}
to="/seafarers"
end
>
Seafarers
</NavLink>