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

如何复用组件并赋予不同className,在其他组件中导入使用?

问题解答

1. 组件参数的命名问题

你不能用class作为组件的props参数名,因为**class是JavaScript的保留关键字**,这会导致语法错误或运行异常。建议改用符合规则的名称,比如和React属性名统一的className:

// 正确定义组件
const MyComp = ({ className }) => (
  <div className={className}>
    ...
  </div>
)

// 调用组件时传递样式类
return (
  <MyComp className="icon" />
)

2. 在List组件中修改className的方式

你当前在List组件里直接写{MyComp}是错误的——这是直接渲染组件的定义,而非实例化组件。正确做法是用<MyComp />的形式调用组件,并在此处传递新的className:

// 如果MyComp是List的props传入
const List = ({ MyComp }) => {
  // ...
  return (
    <div> 
      <MyComp className="list-item-style" />
    </div>
  )
}

// 使用List组件时传入MyComp
<List MyComp={MyComp} />

3. "expected a string"错误的原因

你遇到的错误核心就是用了class作为props参数名,违反JS语法规则导致React无法正确解析字符串参数。只要把参数名改成合法的(比如className),再用<MyComp className="anotherStyle" />的方式调用就可以正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 05:05:18