Maison >interface Web >Questions et réponses frontales >Que faire si une erreur de réaction nulle est signalée

Que faire si une erreur de réaction nulle est signalée

藏色散人
藏色散人original
2023-01-19 14:43:341456parcourir

Solution pour réagir à l'erreur null : 1. Ouvrez le fichier js correspondant ; 2. Vérifiez si l'élément a été rendu dans le DOM ; 3. Accédez à la référence dans le hook useEffect, ou accédez à la référence lorsque l'événement est déclenché.

Que faire si une erreur de réaction nulle est signalée

L'environnement d'exploitation de ce tutoriel : système Windows 10, React version 18.0.0, ordinateur Dell G3.

Que faire si une erreur de réaction nulle est signalée ?

La référence d'erreur React renvoie undéfini ou null

Lorsque nous essayons d'accéder à la propriété actuelle de son élément DOM correspondant avant qu'il ne soit rendu, la référence de React renvoie généralement undéfini ou null. Pour résoudre ce problème, vous pouvez accéder à la référence dans le hook useEffect, ou accéder à la référence lorsque l'événement est déclenché. Le hook

import {useRef, useEffect} from 'react';
export default function App() {
  const ref = useRef();
  console.log(ref.current); // ?️ undefined here
  useEffect(() => {
    const el2 = ref.current;
    console.log(el2); // ?️ element here
  }, []);
  return (
    <div>
      <div ref={ref}>
        <h2>Hello</h2>
      </div>
    </div>
  );
}

useEffect

useRef() peut transmettre une valeur initiale en tant que paramètre. Ce hook renvoie un objet ref mutable et la propriété actuelle sur l'objet ref est initialisée avec le paramètre passé.

Nous n'avons pas transmis de valeur initiale pour useRef, sa propriété actuelle est donc définie sur undefined. Si nous passons null au hook, nous obtiendrons null si nous accédons immédiatement à sa propriété actuelle.

Il convient de noter que nous devons accéder à l'attribut actuel sur l'objet ref pour accéder à l'élément div avec l'attribut ref défini.

Lorsque nous transmettons un attribut ref à un élément, par exemple 11a9c0119a7de7705cd9417a8e6c4780 , React définit la propriété .current de l'objet ref sur le nœud DOM correspondant.

Nous utilisons le hook useEffect car nous voulons nous assurer que la référence a été définie sur l'élément et que l'élément a été rendu dans le DOM.

Si nous essayons d'accéder à la propriété actuelle sur ref directement dans le composant, nous deviendrons indéfini car ref n'a pas encore été défini et l'élément div n'a pas encore été rendu.

Event

Vous pouvez également accéder à la propriété actuelle de ref dans la fonction de gestionnaire d'événements.

import {useRef, useEffect} from &#39;react&#39;;
export default function App() {
  const ref = useRef();
  console.log(ref.current); // ?️ undefined here
  useEffect(() => {
    const el2 = ref.current;
    console.log(el2); // ?️ element here
  }, []);
  const handleClick = () => {
    console.log(ref.current); // ?️ element here
  };
  return (
    <div>
      <div ref={ref}>
        <h2>Hello</h2>
      </div>
      <button onClick={handleClick}>Click</button>
    </div>
  );
}

Lorsque l'utilisateur clique sur le bouton, la référence a été définie et l'élément correspondant a été rendu dans le DOM, afin que nous puissions y accéder.

Résumé

Vous pouvez accéder à ref dans le hook useEffect, ou accéder à ref lorsque l'événement est déclenché. En d'autres termes, assurez-vous que l'élément a été rendu dans le DOM.

Apprentissage recommandé : "Tutoriel vidéo React"

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