Dans React, vous pouvez rencontrer un scénario dans lequel vous souhaitez utiliser un composant wrapper pour encapsuler un groupe de composants enfants et leur transmettre certaines propriétés communes.
Une approche consiste à utiliser React.Children pour itérer sur les enfants et clonez chaque élément avec les nouveaux accessoires en utilisant React.cloneElement. Cependant, cette méthode n'est pas recommandée en raison de la fragilité potentielle du code.
<br>const Child = ({ childName, sayHello }) => (<br> <button onClick={() => sayHello(childName)}>{childName}</button><br>);</p> <p>fonction Parent({ enfants }) {<br> fonction sayHello(childName) {</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">console.log(`Hello from ${childName} the child`);
}
const childrenWithProps = React.Children.map(children, child => {
if (React.isValidElement(child)) { return React.cloneElement(child, { sayHello }); } return child;
});
retour
function App() {
// Alternative moins sécurisée mais plus simple
return (
<Parent> <Child childName="Billy" /> <Child childName="Bob" /> </Parent>
);
}
ReactDOM.render(
Pour transmettre des propriétés aux enfants, considérez ce qui suit alternatives :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!