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

177
Views
React JS abre un modal al presionar el botón si un usuario no ha iniciado sesión

Estoy tratando de crear un sistema de votación como stackoverflow, cuando un usuario hace clic en un botón para votar a favor o en contra, si no ha iniciado sesión, se muestra un modal emergente. Mi información de usuario se almacena en contexto, por lo que puedo usar un enlace para verificar si actualmente tengo un usuario registrado. La pregunta es cómo puedo hacer una verificación correctamente dentro del controlador onClick.

Mi primera sugerencia fue algo como esto.

 function userVote(){ const [showModal, setShowModal] = useState(); const auth = useAuth(); const handleClick = () => !auth.user ? setShowModal(true) : "the logic for updating the user vote if he is already signed in" return ( <> <button onClick={handleClick}></button> {showModal ? <Modal /> : null} </> ) }

Pero que yo sepa, no es una buena práctica hacer actualizaciones de estado dentro de las condiciones o me equivoco. Supongo que hay una mejor manera de hacer esto.

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

si desea deshacerse de la condición antes de actualizar el estado, modifique su función para que sea como:

 const handleClick = () => { setShowModal(!auth.user) if (auth.user) { // Write the logics here } }

establece el estado sin importar si auth.user existe o no.

about 4 years ago · Juan Pablo Isaza 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!