【发布时间】:2020-08-28 19:45:57
【问题描述】:
关于 SO 上的此错误有几个问题,但没有任何人在类似情况下提出问题,而且我找到的解决方案都没有工作,因此我将发布一个具体问题。
当在另一个组件中使用 Styled 组件并将 props 传递给它时,我是否必须创建一个新类型来将 props 传递给 styled 组件,或者有什么方法可以使用现有的 styled 组件类型?
这是我的代码。似乎是 as="" 属性给出了上述错误。我认为这与我的组件只接受 prop 的事实有关,因此它可以将其传递给样式化组件,因为它是样式化组件的一个特征。
import React from 'react'
import styled from 'styled-components'
type Props = {
additionalClass?: string,
as?: string
}
const Component: React.FC<Props> = (props) => {
return (
<StyledComponent as={props.as} className={props.additionalClass}>
{props.children}
</StyledComponent>
)
}
export default Component
const StyledComponent = styled.div`
...styles go here
`
【问题讨论】:
-
我不确定我是否遵循您的问题,但您始终可以使用
<StyledComponent {...props} />语法传递您的道具。 -
我也在这样做,但将其删除以在此处发布我的最小示例。我应该解释问题似乎来自 as="" 属性,因为这是样式组件的一部分。
-
我已经编辑了问题。
-
你能粘贴实际的错误信息吗?您可以粘贴 StyledComponent 的定义吗?你是不是根据
as设置了一些css属性? -
你是否按照styled-components.com/docs/api#typescript设置了TS支持?
标签: reactjs typescript styled-components