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

174
Views
¿Cómo puedo separar la lógica de mapeo JSX de la matriz mapeada que contiene componentes con accesorios?

Tengo un componente que se mapea sobre una serie de componentes a los que se les han pasado accesorios, algo así:

 const Component = (prop0, prop1, prop2) => { const array = [ { id: 0, component: <SubComponent0 prop0={prop0}> }, { id: 1, component: <SubComponent1 prop1={prop1}> }, { id: 2, component: <SubComponent2 prop2={prop2}> } ]; return ( {array.map(obj => <div key={obj.id}> {obj.component} </div> )} ); }; export default Components;

Me gustaría separar la matriz en su propio archivo JS en el que importo, lo que funcionó bien para mí en otros casos en los que los componentes no involucran accesorios, pero en este caso me encuentro con el problema de que los accesorios no están definidos fuera del alcance. de este componente funcional, y no puedo entender cómo puedo importar/pasar esos accesorios al nuevo archivo JS donde coloco la matriz. ¿Es eso posible de hacer, o hay otra forma de mover la matriz a un archivo separado? Gracias.

about 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Un enfoque para eso podría ser usar una función predeterminada que construya los datos y luego devuelva todo.

datos.js

 const getData = (prop0, prop1, prop2) => { return [ { id: 0, component: <SubComponent0 prop0={prop0}> }, { id: 1, component: <SubComponent1 prop1={prop1}> }, { id: 2, component: <SubComponent2 prop2={prop2}> } ]; } module.exports = getData;

Aplicación.js

 const getData = require('data.js'); const Component = (prop0, prop1, prop2) => { const array = getData(prop0, prop1, prop2); };
about 4 years ago · Santiago Trujillo Report

0

Creo que también puede probar el componente dinámico significa el nombre del componente de String que nunca implementé, pero busco poco y preparo la solución como se muestra a continuación. Puedes probar y decirnos si funciona.

datos.js

 import { lazy } from 'react'; const getData = (props) =>{ const array = props.map((item,index) => { const DynamicComponent = lazy(() => import(`./SubComponent${index}`)); return { id : index, component : <DynamicComponent prop=`prop${item}` /> } }); return array } export default getData;

Aplicación.js

 import getData from './data.js'; const Component = (...props) => { const array = getData(props) return ( {array.map(obj => <div key={obj.id}> {obj.component} </div> )} ); }; export default Component;
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!