Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

234
Vistas
combine múltiples estados de uso de agregar valor en una matriz en una sola función en reaccionar

Esta pregunta solo está relacionada con la reducción de la complejidad del código. Tengo 8 matrices, en las que tengo que agregar elementos en función de un clic de botón. lo que hice fue hacer 8 funciones separadas para todas estas tareas. ¿Hay alguna solución para combinar todas estas funciones en una sola función que acepte una matriz como parámetro y haga el resto del trabajo?

 const [deleteArray,setDeleteArray]=useState([]); const [newArray,setNewArray]=useState([]); const handleDeleteParking = (id) => { setDeleteArray((deleteArray) => [...deleteArray, id]); } const handleNewParking = (id) => { setNewArray((newArray) => [...newArray, id]); }

Tengo un total de 8 matrices con 8 funciones separadas para agregar elementos a la matriz, ¿cómo puedo lograr esta tarea con una sola función?

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

No puede simplemente pasar la matriz a la función, ya que la matriz y la función setArray son diferentes. Pero, por supuesto, puede pasar la función setter en su lugar:

 const addToArray = (id, setStateFn) => { setStateFn((arr) => [...arr, id]); } // usage: instead of handleDeleteParking(id) addToArray(id, setDeleteArray);
about 4 years ago · Juan Pablo Isaza Denunciar

0

Podría haber creado un objeto que almacenará todos sus valores.

Verifique el siguiente código que puede ayudarlo.

 const [data, setData] = useState({ deleteParking: [], newParking: [], }); const handleChange = (key, id) => { setData(prev => { return { ...prev, [key]: [ ...prev[key], id, ] } }); } handleChange('deleteParking', 1); handleChange('newParking', 1);
about 4 years ago · Juan Pablo Isaza Denunciar

0

Puede fusionar todo su estado en un solo estado y luego puede crear una función común para actualizar un estado particular y luego, junto con la matriz (matriz actualizada), puede pasar el nombre de la propiedad. Como esto:

 const [arrState,setArrayState]=useState({deleteArr:[]}); const commonUpdateFunction=(id, propertyName)=>{ setArrayState (prev=> ({...prev,[propertyName]:[...prev.[propertyName],id]})) }

Al hacer clic

 const handleClick=(someId)=>{ commonUpdateFunction(someId,deleteArr) }
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda