Maison > interface Web > js tutoriel > Comment mettre à jour l'état d'un composant parent à partir d'un composant enfant dans React ?

Comment mettre à jour l'état d'un composant parent à partir d'un composant enfant dans React ?

Linda Hamilton
Libérer: 2024-12-10 00:29:11
original
279 Les gens l'ont consulté

How to Update Parent Component State from a Child Component in React?

Transmission des mises à jour de l'état parent via les fonctions de rappel dans React

Lorsque vous travaillez avec des composants React imbriqués, il peut s'avérer nécessaire de mettre à jour l'état d'un composant parent à partir d’un composant enfant. Étant donné que les accessoires sont immuables, leur attribuer directement des valeurs n'est pas réalisable.

Dans de tels scénarios, une approche alternative consiste à transmettre une fonction au composant enfant qui lui permet de mettre à jour l'état du parent. Ceci peut être réalisé comme suit :

// Parent Component
class Parent extends React.Component {
  constructor(props) {
    super(props);

    this.handler = this.handler.bind(this);
  }

  handler() {
    this.setState({
      someVar: 'some value',
    });
  }

  render() {
    return <Child handler={this.handler} />;
  }
}

// Child Component
class Child extends React.Component {
  render() {
    return <Button onClick={this.props.handler} />;
  }
}
Copier après la connexion

Grâce à ce mécanisme, le composant enfant peut invoquer la fonction fournie via les accessoires et mettre à jour l'état du parent.

Cependant, il est important de noter que votre la structure des composants devra peut-être être réévaluée. Les composants 5 et 3 dans votre exemple semblent n'avoir aucune relation directe.

Une solution potentielle consiste à introduire un composant de niveau supérieur qui encapsule les deux composants 5 et 3. Ce composant parent peut maintenir l'état pertinent pour les deux composants enfants et les transmettre via les accessoires.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal