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

styled-components css模板函数在函数内调用输出异常:插值错误、多余逗号

修复方案

你遇到的问题核心是错误调用了css辅助函数返回值的.toString()方法:css返回的是样式对象实例,不是纯静态字符串,手动序列化会丢失动态插值的处理逻辑,才会生成带多余逗号的无效样式。

直接移除所有.toString()调用,把css的返回值直接传给css prop即可,styled-components内置的编译器会自动完成样式注入、插值处理、theme属性读取的全流程逻辑:

const getCss = (color: string) => css<PropsWithTheme>`
  width: 100px;
  height: 100px;
  color: ${color};
`

const MyComponent = () => <div css={getCss('red')} />

如果需要组合多个css返回的样式,直接传入数组即可,不需要嵌套额外的css模板字符串,自然不会出现Prettier格式化后可读性差的问题:

// 基础样式
const baseCss = css<PropsWithTheme>`
  width: 100px;
  height: 100px;
`
// 动态颜色样式
const colorCss = (color: string) => css<PropsWithTheme>`
  color: ${color};
`
// 组合使用
const MyComponent = () => <div css={[baseCss, colorCss('red')]} />

注:你示例代码中的参数类型存在笔误,strinbg需要修正为string。

内容的提问来源于stack exchange,提问作者Michal Kurz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 23:27:07