【发布时间】:2023-03-26 11:16:02
【问题描述】:
组件有时需要能够呈现为不同的 HTML 元素,具体取决于其上下文。例如,这个Card 组件。
import React from 'react';
export type Props = {
className?: string,
renderAs: any
}
export const Card: React.FC<Props> = function Card({ renderAs, className, children }) {
const Element = renderAs;
return (
<Element className={`card ${ className ? className:'' }`}>
{ children }
</Element>
)
}
在实际使用组件时,一切正常:
<Card renderAs="section">...</Card>
<Card renderAs="div">...</Card>
但我不确定,对于这个用例,如果使用 renderAs: any 是正确的类型,我希望能对此有所了解!
提前谢谢你!
【问题讨论】:
-
这能回答你的问题吗? (stackoverflow.com/questions/54049871/…)
-
我认为可以,但恐怕我没有足够的经验将其应用于我的情况。如果我没看错,我必须自己添加一个新类型?
标签: javascript reactjs typescript