【发布时间】:2020-07-28 10:56:57
【问题描述】:
我正在尝试从 SVG 导入 React functionComponent,然后将其作为 prop 发送到另一个组件以呈现该 svg。使用下面的设置,这编译得很好,但最终在尝试在浏览器中渲染 svg 时崩溃:
错误:对象作为 React 子对象无效(找到:带有键 {$$typeof,render} 的对象)。如果您打算渲染一组子项,请改用数组。
下面的类被简化了。但我想做的事情的要点是:
在overlay.tsx中:
import { ReactComponent as icon } from "/icon.svg";
import CustomItem from "/customItem";
const Overlay: React.FC<OverlayProps> = () => {
return (
<div>
<CustomItem icon={icon}/>
</div>
);
export default Overlay;
}
在 customItem.tsx 中:
import React from "react";
export interface CustomItemProps {
icon: React.FunctionComponent<React.SVGProps<SVGSVGElement>>;
}
const CustomItem: React.FC<CustomItemProps> = ({icon}) => {
return (
<div>
{icon}
</div>
);
};
export default ApplicationsDropdownItem;
我认为我的问题与 {icon} 的语法有关,但我终其一生都无法找出我应该使用什么。
【问题讨论】:
-
将 svg 位置作为字符串导入并用 绘制它确实有效,但这消除了使用 svg 作为组件所带来的所有 css 可能性。
标签: reactjs typescript react-redux