Te permite clonar un elemento React y añadirle o modificar las props que recibe.
import { cloneElement } from 'react'
const Hello = ({ name }) => <h1>Hello {name}</h1>
const App = () => {
const element = <Hello name="midudev" />
return (
<div>
{cloneElement(element, { name: 'TMChein' })}
{cloneElement(element, { name: 'Madeval' })}
{cloneElement(element, { name: 'Gorusuke' })}
</div>
)
}
En este ejemplo, clonamos element
que tenía la prop midudev
y le pasamos una prop name
diferente cada vez. Esto renderizará tres veces el componente Hello
con los nombres TMChein
, Madeval
y Gorusuke
. Sin rastro de la prop original.
Puede ser útil para modificar un elemento que ya nos viene de un componente padre y del que no tenemos posibilidad de re-crear con el componente.