основаны на конкретном компоненте с визуализацией корня?
звестно, что когда мы хотим «расширить»<Component>
в React мы на самом деле не расширяем его класс с помощью наследования, а используем композицию для его рендерингаprops
внутри нашего «производного» компонента, вот так:
class Component extends React.Component {
render() {
return (<div className={ this.props.special_prop }>
I'm a component!
</div>);
}
}
class DerivedComponent extends React.Component {
render() {
return (<Component special_prop='custom value' />);
}
}
Так что это создаст новый тип компонента<DerivedComponent>
, который по-прежнему будет делать регулярный<Component>
, но с пользовательскими значениями, указанными черезprops
.
У меня вопрос, есть ли способ подтвердить это<DerivedComponent>
на самом деле оказывает<Component>
в качестве его корневого компонента / что он "выведен" в этом смысле из<Component>
?
Я спрашиваю, потому что я разрабатываю компонент листинга, который будет визуализировать компоненты списка различных типов в списке, но даже если эти компоненты списка будут разных типов, каждый из них на самом деле будет отображать один и тот же корневой компонент, просто настроенный с помощью разныеprops
, Я хотел бы обеспечить, черезpropTypes
или подобное, чтоchildren
переданные в компонент листинга фактически основаны на этом обычном компоненте, отображаемом в корне.
Если бы React использовал классическое наследование, было бы просто проверить, является ли каждый экземпляр элемента списка также экземпляром этого общего компонента; однако я не верю, что в React есть API для запроса корневого компонента композиции.
Есть ли какой-то способ в React для обеспечения того, чтобыchildren
основаны на конкретном компоненте с визуализацией корня?