[英]How to create html element dynamically with props based on `as` on react (TypeScript)
我想在我的函數中基於as={""}
屬性創建 a、b、div 或其他元素。
我檢查as
,然后使用,如果衛士創建元素一個接一個。 但是有沒有辦法基於組件創建 html 元素?
我希望能夠創建b, a, h4 h3
或任何沒有if
的元素
我發現了類似的問題,但它使用了樣式組件。 沒有它可以做到嗎?
目前我這樣做:
import * as React from 'react'
interface Props {
children: (React.ReactChild | React.ReactNode) | (React.ReactChild[] | React.ReactNode[])
onClick?: (e) => void
as?: string
}
const DynElement: React.FunctionComponent<Props> = props => {
const { as , children } = props
return (
<>
{as === 'div' && <div {...props_rest}>
{children}
</div>}
{as === 'b' && <b {...props_rest}>
{children}
</b>}
</>
)
}
export default DynElement
用法是:
<DynElement as="b" onClick={...}>...</DynElement>
使用 TypeScript + React。
捕獲as
支柱在大寫變量和使用,作為一個JSX組分:
const { as: Cmp = ‘div’, ...rest } = props;
return (
<Cmp {...rest} />
);
甚至不需要明確地傳遞孩子。 它將與“休息”道具一起傳遞。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.