<Link/>
パッケージを使用してgatsby-link
パッケージからstyled-components
コンポーネントのスタイルを設定しようとしています。通常は、const
を作成し、Name
をstyled.a
に設定して、CSSを記述します。ただし、<Link/>
に対してconst
を作成すると、Duplicate declaration "Link"
エラーが発生します。 <Link>
でstyled-components
コンポーネントをスタイルするにはどうすればよいですか。
以下が私のコードです
import React from 'react';
import Link from 'gatsby-link';
import styled from "styled-components";
const Header = styled.div`
margin: 3rem auto;
max-width: 600px;
background:red;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
`;
const Title = styled.h1`
color: aqua;
`;
const Link = styled.a`
color: aqua;
`;
export default () => (
<Header>
<Title>
<Link to="/">
Gatsby
</Link>
</Title>
</Header>
);
次のようなことができるはずです:
import Link from 'gatsby-link';
const StyledLink = styled(Link)`
color: aqua;
`;
// ...
<StyledLink to="/">
Gatsby
</StyledLink>
@kadrianはこれに対する最新のソリューションを持っています。彼の例は私にとってはうまくいきましたが、提供されたリンクに配列構文は必要ありません(混乱を避けるためだけ)。
const StyledLink = styled(props => <Link {...props} />)
color: white;
textDecoration: none;