无法使用样式组件的 Nextjs 组件(链接)

Posted

技术标签:

【中文标题】无法使用样式组件的 Nextjs 组件(链接)【英文标题】:Cannot Nextjs Component (Link) using styled-components 【发布时间】:2022-01-04 00:25:16 【问题描述】:

我正在尝试使用Styled-ComponentsNextJS 提供的Link 组件设置样式。 我已经完成了所有设置,包括babel-plugin-styled-components,在/pages 中创建_document.js。但我仍然无法设置链接组件的样式。

关于设置,我关注了这篇文章: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】:

next.js Link 不采用任何样式,但您可以设置子元素的样式,例如a,并在使用custom compoment 时将passHref 添加到Link。子项的样式将应用于父项,即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>


【讨论】:

以上是关于无法使用样式组件的 Nextjs 组件(链接)的主要内容,如果未能解决你的问题,请参考以下文章

样式 JSX 无法与 NextJS 中的 @media-query 一起正常工作

无法在 NextJS React 组件中获取背景图像渲染 [已解决但无法解释]

NextJS v10 Image 组件在有 basePath 时无法提供图像

NextJS 组件级 SASS 样式

NextJs - 导出使用样式组件的应用程序时出错

如何使用来自@mui/material 的样式使情感组件选择器在 nextjs 应用程序中工作?