#css #next.js #styled-components #server-side-rendering
Вопрос:
Я пытаюсь создать стилизованный Link
компонент, предоставляемый с NextJS
помощью Styled-Components
. Я выполнил всю настройку, включая babel-plugin-styled-components
создание _document.js
/pages
. Но все же я не могу создать компонент link.
Для настройки я следил за этой статьей: https://medium.com/nerd-for-tech/using-next-js-with-styled-components-easy-dfff3849e4f1
Это работает нормально
const StyledComponent = Styled.a`
color: red;
`
Но это не
const StyledComponent = Styled(Link)`
color: red;
`
Может кто-нибудь, пожалуйста, скажите мне, чего мне не хватает? Что теперь нужно сделать?
Любая помощь будет оценена.
Ответ №1:
The next.js Link
не принимает никаких стилей, но вы можете стилизовать дочерние элементы, например a
, и добавить passHref
к Link
ним при использовании a custom compoment
. Стили дочернего элемента будут применены к родительскому, т.е. Link
Однако вы можете стилизовать react-router-dom Link, NavLink
, как то, что вы сделали выше. В next.js вы можете сделать это следующим образом
import Link from 'next/link'
const CustomLink = styled.a `
color: white;
background: red;
`
<Link href="/" passHref>
<CustomLink>Home</CustomLink>
</Link>