Gatsby Styled Components , CSS 显示在 <head>

Posted

技术标签:

【中文标题】Gatsby Styled Components , CSS 显示在 <head>【英文标题】:Gatsby Styled Components , CSS is displaying in <head> 【发布时间】:2021-04-04 13:26:43 【问题描述】:

我正在构建一个带有样式组件的 Gatsby 网站。

这是我的问题。当我使用这样的样式组件创建组件时:

import React from 'react'
import styled from 'styled-components'

const Test = () => 
    return (
        <Wrapper>
            <h1>Test</h1>
        </Wrapper>
    )


export default Test

const Wrapper = styled.section`
h1 
    font-size: 300px;

`

结果: CSS 显示在 &lt;head&gt; 标记中。在下图中,您可以看到 CSS 显示在左上角。

我正在使用最新版本的 Gatsby,我的 package.json 看起来像这样


  "name": "gatsby-starter-hello-world",
  "private": true,
  "description": "A simplified bare-bones starter for Gatsby",
  "version": "0.1.0",
  "license": "0BSD",
  "scripts": 
    "build": "gatsby build",
    "develop": "gatsby develop",
    "format": "prettier --write \"**/*.js,jsx,ts,tsx,json,md\"",
    "start": "npm run develop",
    "serve": "gatsby serve",
    "clean": "gatsby clean",
    "test": "echo \"Write tests! -> https://gatsby.dev/unit-testing\" && exit 1"
  ,
  "dependencies": 
    "@fortawesome/fontawesome-svg-core": "^1.2.32",
    "@fortawesome/free-solid-svg-icons": "^5.15.1",
    "@fortawesome/react-fontawesome": "^0.1.13",
    "gatsby": "^2.29.2",
    "gatsby-image": "^2.8.0",
    "gatsby-plugin-react-helmet": "^3.7.0",
    "gatsby-plugin-sharp": "^2.11.2",
    "gatsby-transformer-sharp": "^2.9.0",
    "react": "^16.14.0",
    "react-dom": "^16.14.0",
    "react-helmet": "^6.1.0",
    "react-icons": "^4.1.0",
    "styled-components": "^5.2.1"
  ,
  "devDependencies": 
    "prettier": "2.2.1"
  ,
  "repository": 
    "type": "git",
    "url": "https://github.com/gatsbyjs/gatsby-starter-hello-world"
  ,
  "bugs": 
    "url": "https://github.com/gatsbyjs/gatsby/issues"
  

我在 Google 上没有找到任何与此问题相关的内容。以前有人遇到过同样的问题吗?您需要查看其他代码吗?希望有人能帮忙。

【问题讨论】:

【参考方案1】:

我以前从未使用过 Gatsby,但 AFAIK 可能取决于常量的顺序(cfr.https://www.gatsbyjs.com/docs/how-to/styling/styled-components/)。试试这个:

import React from "react";
import styled,  css  from "styled-components";

const Wrapper = styled.section`
    h1 
        font-size: 300px;
    
`;

const Test = () => 
    return (
        <Wrapper>
          <h1>Test</h1>
        </Wrapper>
    )


export default Test;

应该工作。您可能总是希望为&lt;h1&gt; 设置一个更具体的常量。

【讨论】:

我试过你的方法,但它不起作用。超级奇怪的错误哈哈。

以上是关于Gatsby Styled Components , CSS 显示在 <head>的主要内容,如果未能解决你的问题,请参考以下文章

标题组件根据 React / Gatsby / Styled-components 中的背景更改文本颜色

Gatsby Styled Components , CSS 显示在 <head>

使用 styled-components 在组件/元素之间共享样式

在 GatsbyJS 中使用 styled-components 设置自定义组件的样式

GatsbyJS 在初始加载后未加载谷歌字体

将自定义类/样式传递给 Gatsby (React) 中的样式化组件