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

藏色散人
Libérer: 2023-01-19 14:43:34
original
1370 Les gens l'ont consulté

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>
  );
}
Copier après la connexion

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

, 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>
  );
}
Copier après la connexion

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!

Étiquettes associées:
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!