Maison >interface Web >js tutoriel >Comment appeler une méthode de composant enfant depuis son parent dans React ?

Comment appeler une méthode de composant enfant depuis son parent dans React ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-21 09:05:10790parcourir

How to Call a Child Component Method from its Parent in React?

Appel d'une méthode de composant enfant depuis son parent dans React

Dans les applications React, il est souvent nécessaire d'invoquer des méthodes définies dans les composants enfants depuis leur composants parents. Bien qu'il existe différentes approches pour y parvenir, cet article se concentre sur une méthode populaire qui exploite les références.

Exposition de méthode impérative via les références

Les références permettent aux développeurs d'accéder au rendu éléments d’un composant et interagir avec eux. Auparavant, les références n'étaient prises en charge que par les composants basés sur les classes, mais avec l'introduction de React Hooks, elles peuvent désormais également être utilisées dans les composants fonctionnels.

Utilisation de forwardRef avec un composant de fonction

Pour rendre un composant fonction accessible via les références, il doit être enveloppé dans forwardRef. Cela nous donne accès à un objet ref qui peut être attribué via la prop ref et passé comme deuxième argument au composant fonction.

Exposer la méthode à l'aide de UseImperativeHandle

Pour exposer une méthode sur un composant enfant, nous utilisons le hook useImperativeHandle. Ce hook prend deux arguments : un objet ref et une fonction de rappel. La fonction de rappel renvoie un objet qui étendra l'instance du composant. En fournissant la méthode dans cet objet renvoyé, nous la rendons accessible via la référence.

Exemple avec des extraits de code

Montrons comment appeler une méthode enfant à partir d'un parent composant utilisant des références et le hook useImperativeHandle :

Child Composant

const Child = forwardRef((props, ref) => {

  useImperativeHandle(ref, () => ({

    getAlert() {
      alert("getAlert from Child");
    }

  }));

  return <h1>Hi</h1>;
});

Composant Parent

const Parent = () => {
  const childRef = useRef();

  return (
    <div>
      <Child ref={childRef} />
      <button onClick={() => childRef.current.getAlert()}>Click</button>
    </div>
  );
};

Dans cet exemple, le composant Child expose la méthode getAlert via la référence, qui peut être appelée depuis le composant Parent en accédant à la propriété actuelle de la réf.

Remarque : Il est important de rappelez-vous que l'exposition de méthodes impératives sur les composants enfants est généralement déconseillée au profit d'une approche plus déclarative et basée sur les données. Cependant, cette méthode peut être utile dans certains scénarios où vous avez besoin d'un accès direct aux fonctionnalités d'un composant enfant.

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!

Déclaration:
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