在下面的代码中,使用样式化组件库来样式化链接的最佳方法是什么?我可以找到很多使用锚标记的例子,但没有一个使用react-router链接的例子。我的方法正确吗?
import React from "react";
import { Link } from "react-router-dom";
import styled from "styled-components";
const Nav = ({ className }) => {
return (
<div className={className}>
<ul>
<li>
<Link to="/">Home</Link>
</li>
<li>
<Link to="/about">About</Link>
</li>
</ul>
</div>
);
};
export default styled(Nav)`
color: white;
text-align: left;
background: teal;
width: 100%;
ul {
color: red;
display: flex;
flex-direction: row;
border: 1px solid green;
list-style: none;
li {
padding: 15px 15px;
border: 2px solid purple;
}
}
`;
谢谢约瑟夫·沙纳汉
5条答案
按热度按时间2wnc66cl1#
是的,谢谢你的帮助。我将实现的精简版本如下。它还有一个优点,那就是我不必实现一个无序列表。
谢谢约瑟夫·沙纳汉
hlswsv352#
你的方法是正确的,但也没有什么错,你只是传递了组件引用,而不是使用
ul
。看看这个answer,很熟悉。
ibrsph3r3#
react-router link
翻译为毕竟在<a>
标签中,因此以与<a>
标签相同的方式设置它们的样式,因此假设您需要将它们的颜色更改为红色:不起作用,你需要做:
p4rjhz4m4#
如果你只是想对
Link
组件进行样式化,那么根据我的经验,通常的方法是创建一个样式化的组件,如下所示:然后将其渲染为
<NavLink>Home</NavLink>
。这也使得重用这个样式化的组件变得容易。
8nuwlpux5#
const Nav = styled(Link)
color: white; text-align: left; background: teal;
在这里输入代码width: 100%;
;