javascript - 在 Typescript React 组件中为 renderAs 属性设置正确的类型?
问题描述
组件有时需要能够呈现为不同的 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
对于这个用例,如果 using 是正确的类型,我将不胜感激!
先感谢您!
解决方案
您传递的实际类型是React.ElementType
,离开
export type Props = {
className?: string,
renderAs: React.ElementType
}
您所说的是您希望能够renderAs
设置为某些固有的 JSX 元素,例如section
, div
, span
...
推荐阅读
- php - 单一职责原则和代码可读性
- sql - 我有日历日期,如何在每个日期结束?
- python - 如何使用线程池退出 chrome 会话?
- django - 未找到“广告”的反向。“广告”不是有效的视图函数或模式名称
- python - 将 RSS 提要解析为 csv
- c# - winform-如何用C#在excel中打印多个表格标签
- java - 为Java创建一个在输入/输出后不会关闭的循环回文程序
- angular - TypeError:无法读取角度 6 中未定义的属性“长度”
- ios - 在 ios BYOD 上使用 MDM 安装配置文件时,哪个 PayloadType 用于应用程序?
- azure-cosmosdb - 无法在 cosmos 模拟器中创建数据库