Как я могу отрендерить StyledComponent
, который передается как реквизит?
Я передаю компонент Spinner
в мой BarComponent
в качестве реквизита для рендеринга.Я попытался использовать {this.props.icon}
в моем BarComponent
в следующем примере, но вместо этого он выдал ошибку:
Объекты недопустимы как дочерние элементы React (найдено: объект с ключами {$$ typeof), render, attrs, componentStyle, displayName, foldedComponentIds, styledComponentId, target, withComponent, warnTooManyClasses, toString}).Если вы хотите отобразить коллекцию дочерних элементов, используйте вместо этого массив.
Как это исправить?
import React, { Component } from 'react';
import { StyledIcon } from 'styled-icons';
import { Spinner } from 'styled-icons/fa-solid';
interface BarComponentProps {
icon: StyledIcon,
name: string
}
class BarComponent extends Component<BarComponentProps> {
render() {
return (
// How to render a StyledComponent passed in as a prop?
// In this example it should result in something like:
// <div><Spinner /> - {this.props.name}</div>
<div>{this.props.icon} - {this.props.name}</div>
);
}
}
class FooComponent extends Component {
render() {
return <BarComponent icon={Spinner} name='Baz' />;
}
}