【发布时间】:2022-01-04 05:19:17
【问题描述】:
const StyledNavLink = styled(NavLink)`
text-decoration: ${(props) => {
console.log(props.style);
return props.style ? (isActive) => (isActive ? "underline" : "none") : "none";
}};
&:hover {
text-decoration: underline;
}
`;
export default function BasicExample() {
return (
<Router>
<Navbar>
<NavItems>
<NavItem>
<NavLink
to="/"
end={true}
style={({ isActive }) => {
console.log(isActive + "About");
return { textDecoration: isActive ? "underline" : "none" };
}}
>
Home
</NavLink>
</NavItem>
<NavItem>
<NavLink
to="/about"
style={({ isActive }) => {
console.log(isActive + "About");
return { textDecoration: isActive ? "underline" : "none" };
}}
>
About
</NavLink>
</NavItem>
<NavItem>
<NavLink
to="/dashboard"
style={({ isActive }) => {
console.log(isActive + "Dashboard");
return { textDecoration: isActive ? "underline" : "none" };
}}
>
Dashboard
</NavLink>
</NavItem>
</NavItems>
</Navbar>
<Routes>
<Route path="/" caseSensitive={false} element={<Home />}></Route>
<Route path="/about" caseSensitive={false} element={<About />}></Route>
<Route path="/dashboard" caseSensitive={false} element={<Dashboard />}></Route>
</Routes>
</Router>
);
}
如何抽象出设置活动链接样式的逻辑来表示 StyledNavLink 样式组件,我尝试使用 StyledNavLink 代替 Navlink,但它不起作用。我不确定我可能会错过什么。 如果我在 StyledNavLink 中调出 props.style,那么它始终是未定义的。
【问题讨论】:
标签: reactjs react-router-dom styled-components