Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

158
Views
por qué usamos ref.current en lugar de solo poner la condición

¿Alguien puede decirme por qué usamos if (ref.current && !ref.current.contains(event.target)) en lugar de if (!ref.current.contains(event.target))

 function useOutsideAlerter(ref) { useEffect(() => { // Function for click event function handleOutsideClick(event) { if (ref.current && !ref.current.contains(event.target)) { alert("you just clicked outside of box!"); } } // Adding click event listener document.addEventListener("click", handleOutsideClick); return () => document.removeEventListener("click", handleOutsideClick); }, [ref]); }
about 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Entonces, el problema principal es que es posible que la referencia no se establezca en el primer renderizado. Se garantizó que se configuraría en componentDidMount, cuando usamos clases, por ejemplo, pero en componentes funcionales es un poco más complicado, ya que no tenemos ciclos de vida y tenemos efectos, por lo que es útil verificar, si se establece ese valor de referencia.

about 4 years ago · Santiago Trujillo Report

0

De acuerdo con los documentos

Cuando se pasa una ref a un elemento en el renderizado, se puede acceder a una referencia al nodo en el atributo current de la referencia.

ref en sí mismo puede tener un valor, pero para acceder al elemento, debe usar ref.current , que puede no estar definido.

Para acortar su sintaxis, puede usar el encadenamiento opcional

 if (!ref.current?.contains(event.target) { // ... }
about 4 years ago · Santiago Trujillo Report

0

La propiedad .current puede ser nula, por lo que solo debemos asegurarnos de que la propiedad no sea nula antes de intentar leer la propiedad .current. Recuerde que .current se establece después de que la función regrese.

about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!