I need to pass a component as a parameter to be rendered from another component.
In the following example I want to render Title1 or Title2 within Profile
given the components:
export class Titulo1 extends React.Component {
render () {
return (<div><H2>this.props.nombre</H2><h3>this.props.apellido</H3></div>)
}
}
export class Titulo2 extends React.Component {
render () {
return (<div><H1>this.props.nombre</H1><h2>this.props.apellido</H2></div>)
}
}
and
export class Perfiles extends React.Component {
render () {
let perfiles= this.props.usuarios.map((usuario, index, coll) => {
var props = {
id: usuario.id,
index: index,
apellido: usuario.apellido,
nombre: usuario.nombre
}
return (<Perfil {...props}>
{React.createElement(this.props.extraComponent, props)}
</Perfil>)
}, this)
}
return ({perfiles})
}
}
export class Perfil extends React.Component {
render () {
return (<div><H2>this.props.id</H2>{this.props.children}</div>)
}
}
the goal is to call
<Perfiles extraComponent={Titulo1} usuarios={lista} />
or
<Perfiles extraComponent={Titulo2} usuarios={lista} />
as needed, but it does not let me give me an error in React.createElement (this.props.extraComponent, props) Any suggestions? thank you very much !!