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

163
Views
Cómo manejar los accesorios de React correctamente

Publiqué esto aquí porque soy relativamente nuevo en React y no sabía exactamente qué debería buscar en Google. En mi proyecto React, tengo una cuadrícula de kendo que tiene una columna personalizada llamada OPCIONES, como esta:

 <Grid onDataStateChange={onDataStateChange} data={result} {...{skip:0, take:13}}> <GridColumn cell={CommandCell} title="Options"/> <GridColumn field="session_id" title="Session" filter='text'/> <GridColumn field="sn_zag_id" title="Service" filter='text'/>

La columna Opción se define así:

 const [visible2, setVisible2] = useState(false); const [snZagId, setSnZagId] = useState(); const toggleDialogPrilog = (props) => { setVisible2(!visible2); setSnZagId(props.dataItem.sn_zag_id) } const CommandCell = (props) => <Options {...props}/> const Options= (props) => { return <td className="k-command-cell"> <div style={{marginTop:'2%'}}> <Button style={{width:'8vw',marginTop:'2%'}} onClick={()=>toggleDialogPrilog(props)}> Add </Button></>} </div> { visible2 && <Dialog onClose={()=> toggleDialogPrilog()} title={"Add"} style={{width:'50%'}}> <Prilog snZagId={snZagId}/> </Dialog> } </td>;}

Entonces, en la columna de opciones tengo un botón AGREGAR que, cuando se hace clic, abre un cuadro de diálogo con el componente PRILOG dentro. La cuadrícula de la que hablo es grande, compuesta por páginas de 13 filas. Todo funciona perfectamente, así que cuando hago clic en el botón Agregar, se abre el cuadro de diálogo con material personalizado para esa fila. Pero la cuestión es que, si abro la consola/inspecciono, puedo ver que cuando hago clic en Agregar, se abren 13 cuadros de diálogo al mismo tiempo:

Inspector

Soy consciente hasta cierto punto de que cuando hago clic en Agregar, todos los cuadros de diálogo se representan porque envío accesorios, pero no sé cómo detenerlo. En otras palabras, ¿cómo puedo modificar mi código para que solo se abra un (1) cuadro de diálogo cuando hago clic en Agregar?

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

0

Logré resolver el problema de alguna manera, pero no sé cuál es exactamente la diferencia. En lugar de poner el componente Opciones en el mismo archivo jsx, hice otro componente llamado SessionOptions así:

Sesión.jsx:

 import SessionOptions from '../../Popup/SesijaOpcije'; ... const CommandCell = (props) => <SessionOptions props={props}/>; ...

SessionOptions.jsx:

 ... export default function SessionOptions({props}) { ... return <td className="k-command-cell"> <div style={{marginTop:'2%'}}> <Button style={{width:'8vw',marginTop:'2%'}} onClick={()=>toggleDialogPrilog(props)}> Add </Button></>} </div> { visible2 && <Dialog onClose={()=> toggleDialogPrilog()} title={"Add"} style={{width:'50%'}}> <Prilog snZagId={snZagId}/> </Dialog> } </td>;}

Y ahora abre solo un cuadro de diálogo. La única diferencia que veo claramente es en el envío de los accesorios.

 //Before: const CommandCell = (props) => <Options {...props}/> //After: const CommandCell = (props) => <SessionOptions props={props}/>;

La primera es notación de distribución de propiedades, y la segunda es...? ¿Alguien puede explicar la diferencia? Si alguien pudiera aclarar más.

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!