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

109
Views
haga clic en el controlador que no cambia de estado

Estoy tratando de crear una aplicación simple donde, si hace clic en un botón, aparece una superposición modal, y si hace clic en la 'x' en el modal, desaparece. Creé un componente para mi botón, llamado ShowOffer, y tengo un clic en él que alterna el valor booleano de modalVisible, que es una parte del estado. Sin embargo, no sucede nada cuando hago clic en él. Hice otro elemento de botón con el mismo clic y parece funcionar bien. Aquí hay una caja de arena de código

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

0

Esta es la lógica simple. Su componente ShowOffer no identifica el evento onclick y el botón de este componente no tiene ningún controlador de eventos. Entonces simplemente pasa el evento o pasa directamente el nombre de la función para acceder al evento. Pasar el nombre de los accesorios es lo importante.

 <ShowOffer display={"block"} onClick = {toggleBox}/> export default function ShowOffer({ display, onClick}) { return ( <button style={{ display: `${display}` }} className="show-offer" onClick={onClick}> Show Offer </button> ); }

o

 <ShowOffer display={"block"} toggleBoxFunct = {toggleBox}/> export default function ShowOffer({ display, toggleBoxFunct }) { return ( <button style={{ display: `${display}` }} className="show-offer" onClick={toggleBoxFunct}> Show Offer </button> ); }
about 4 years ago · Juan Pablo Isaza Report

0

Está agregando onClick en el componente ShowOffer , pero aquí solo lo está pasando como prop .

 <ShowOffer display={"block"} onClick={toggleVisibility} />

es igual que

 React.createElement(ShowOffer, { display: "block", onClick: toggleVisibility });

Debajo del gancho, solo estás pasando un argumento a una función

Debe agregar el evento onClick en el button en el componente ShowOffer como:

Demo en vivo

Demostración de Codesandbox

 <button style={{ display: `${display}` }} onClick={toggleVisibility} className="show-offer" > Show Offer </button>

y debe pasar la devolución de llamada toggleVisibility a ShowOffer como:

 <ShowOffer display={"block"} toggleVisibility={toggleVisibility} />
about 4 years ago · Juan Pablo Isaza Report

0

Puede utilizar el concepto de devoluciones de llamada,
App.js, realice los siguientes cambios,
pase toggleVisibility={toggleVisibility} como accesorios, no es necesario mencionar onClick en el componente sino en el botón

 return ( <div className="App"> <Modal display={modalVisible ? "flex" : "none"} /> <ShowOffer display={"block"} onClick={toggleVisibility} toggleVisibility={toggleVisibility}/> <button onClick={toggleVisibility}>Button</button> </div> );

ShowOffer.js, función de accesorios pasados, llame a esa función aquí con onclick ,

 import React from "react"; import "./ShowOffer.css"; export default function ShowOffer({ display, toggleVisibility }) { return ( <button style={{ display: `${display}` }} onClick={toggleVisibility} className="show-offer"> Show Offer </button> ); }

la solución de trabajo está aquí, https://codesandbox.io/embed/modal-overlay-tnis9?fontsize=14&hidenavigation=1&theme=dark

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!