• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Evaluaciones
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

195
Vistas
Agregar y eliminar funciones en una matriz de javascript (React-Hooks)

Tengo un sistema de filtrado donde uso una matriz para agregar o eliminar los métodos de filtrado. Pero mi estado no funciona correctamente o me he perdido algo.

 const [filters, setFilters] = useState([]); const [creatorFilter, setCreatorFilter] = useState(null); const handleCreatorFilter =(filter) => { setCreatorFilter(filter); if (filter === 'structures' && filters.indexOf(byStructureFilter) === -1) { setFilters([...filters, byStructureFilter]); } if (filter === 'members' && filters.indexOf(byMemberFilter) === -1) { setFilters([...filters, byMemberFilter]); } if (filter === 'all') { setFilters(filters.filter(el => el !== byStructureFilter || el !== byMemberFilter)); } }; const byStructureFilter = (item) => { return item.relationships.structure.data }; const byMemberFilter = (item) => { return item.relationships.user.data && !item.relationships.structure.data };

Aquí los dos botones que llaman a ese handleCreatorFilter para filtrar

 <button onClick={() => creatorFilter === 'structures' ? handleCreatorFilter('all') : handleCreatorFilter('structures')}>Structures officielles</button> <button onClick={() => creatorFilter === 'members' ? handleCreatorFilter('all') : handleCreatorFilter('members')} >Membres Wekomkom</button>

Las cosas son para agregar métodos de filtrado a la matriz, funciona bien, pero no cuando el filtro está configurado para all (eliminando los métodos de filtrado). ¿Ves algo mal en mi lógica?

almost 3 years ago · Juan Pablo Isaza
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 Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda