You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用styled-components的GlobalStyles时为何出现解析错误?

解决styled-components中GlobalStyles重复声明的语法错误

这个错误原因其实很直白——你在Global.js文件里重复声明了同一个变量GlobalStyles,JavaScript在同一作用域里不允许这种操作,所以直接抛出了语法错误。

问题根源就在这两行代码:

import { GlobalStyles } from "styled-components";
const GlobalStyles = createGlobalStyle`...`;

你先从styled-components导入了名为GlobalStyles的变量,紧接着又用const重新定义了同名变量,这就触发了标识符重复声明的报错。

修正后的完整代码

1. 修复src/components/styles/Global.js

import { createGlobalStyle } from "styled-components";

// 删掉重复导入的GlobalStyles,我们不需要它
const GlobalStyles = createGlobalStyle`
/* 修正@import的语法错误,去掉多余的引号和rel属性 */
@import url('https://fonts.googleapis.com/css2?family=Courgette&display=swap');

* { box-sizing: border-box; }
body { 
  background: #fff; 
  color: pink; 
  font-family: "Courgette", sans-serif; 
  font-size: 1.15em; 
  margin: 0; 
}
p { opacity: 0.6; line-height: 1.5; }
img { max-width: 100%; } /* 把image改成正确的HTML标签img */
`;

export default GlobalStyles;

我还顺便帮你修正了几个影响样式生效的小问题:

  • 去掉了每个CSS规则后面的逗号,styled-components的模板字符串里写的是纯CSS,不需要对象语法的逗号
  • 把image改成了img,这才是HTML里正确的图片标签,不然样式不会作用到图片上
  • 修正了@import的语法错误,原来的写法多了不必要的引号和rel="stylesheet",这是HTML link标签的属性,不是CSS @import的内容

2. App.js保持不变即可

你的App组件代码是没问题的,只要确保GlobalStyles的导入路径正确就行。

现在重新运行项目,这个重复声明的错误就会消失啦。

内容的提问来源于stack exchange,提问作者Melısa Yılmaz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 15:52:32