Estoy tratando de encontrar la forma adecuada de definir algunos componentes que podrían usarse de manera genérica:
<Parent>
<Child value="1">
<Child value="2">
</Parent>
Por supuesto, existe una lógica para la representación entre los componentes principal y secundario, se puede imaginar <select>
y <option>
como ejemplo de esta lógica.
Esta es una implementación ficticia para el propósito de la pregunta:
var Parent = React.createClass({
doSomething: function(value) {
},
render: function() {
return (<div>{this.props.children}</div>);
}
});
var Child = React.createClass({
onClick: function() {
this.props.doSomething(this.props.value); // doSomething is undefined
},
render: function() {
return (<div onClick={this.onClick}></div>);
}
});
La pregunta es cada vez que usas {this.props.children}
para definir un componente contenedor, ¿cómo se transmite alguna propiedad a todos sus elementos secundarios?
Aprendí mucho de las respuestas a esta pregunta. Creo que la API de contexto es la mejor solución en la tierra de React de hoy. Pero si quieres usar React.cloneElement, un problema que enfrenté es no iterar correctamente a los niños con
React.Children.map()
. Ver más en Cómo pasar accesorios a {react.children}– Víctor Ofoegbu
26 de mayo de 2021 a las 3:23