众所周知,当我们想要“扩展”一个<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
基于特定的根渲染组件?
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)