usr*_*526 5 reactjs styled-components react-router-dom
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>
);
}
Run Code Online (Sandbox Code Playgroud)
如何抽象出活动链接样式的逻辑来表示 StyledNavLink 样式组件,我尝试使用 StyledNavLink 代替 Navlink 但它不起作用。我不确定我可能会错过什么。如果我在 StyledNavLink 中控制台输出 props.style ,那么它始终是未定义的。
const StyledNavLink = styled(NavLink)`
text-decoration: ${(props) => {
console.log(props.style);
return props.style ? (isActive) => (isActive ? "underline" : "none") : "none";
}};
&:hover {
text-decoration: underline;
}
&[aria-current] {
color: red;
}
`;
Run Code Online (Sandbox Code Playgroud)
我只需检查 aria-current 属性是否存在,现在如果我用 StyledNavLink 替换 NavLink,一切都会按预期工作
或者,如下所示,可以检查活动类是否存在
const StyledNavLink = styled(NavLink)`
text-decoration: ${(props) => {
console.log(props);
return props.style ? (isActive) => (isActive ? "underline" : "none") : "none";
}};
&:hover {
text-decoration: underline;
}
&[class*="active"] {
color: red;
}
`;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2921 次 |
| 最近记录: |