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

175
Vistas
Reaccionar con Redux, gran pérdida de rendimiento al obtener imágenes y configurarlas como parte de la porción de estado

Tengo una aplicación React, el estado se administra con Redux.

El usuario puede buscar un juego y una multitud de resultados, cuyos títulos coinciden vagamente con la consulta, aparecerán al enviar. Cada vez que el usuario ingresa otra consulta, los resultados anteriores son reemplazados por los nuevos.

Después de 5-6 búsquedas, la aplicación se ralentiza considerablemente. Después de la séptima búsqueda, deja de funcionar por completo y Chrome muestra un aviso de "página que no responde".

La porción redux se ve así:

 import { createSlice, createAsyncThunk } from '@reduxjs/toolkit'; import rawg from '../../apis/rawg'; const initialState = { results: [], }; export const fetchGames = createAsyncThunk( 'gamesSearch/fetchGames', async (query) => { const response = await rawg.get('/games', { params: { search: query, }, }); return response.data.results; } ); const gamesSearchSlice = createSlice({ name: 'gamesSearch', initialState, reducers: {}, extraReducers: { [fetchGames.fulfilled]: (state, action) => { const results = action.payload; const parsedResults = results.map((result) => { return { name: result.name, slug: result.slug, backgroundImage: result.background_image, genres: result.genres.map((genre) => genre.name).join(', '), id: result.id, released: result.released ? `${result.released.split('-')[2]}.${ result.released.split('-')[1] }.${result.released.split('-')[0]}` : null, }; }); }, }, }); export default gamesSearchSlice.reducer; export const selectResults = (state) => state.gamesSearch.results;

Y el componente desde el que se envía la búsqueda se ve así:

 import React, { useState } from 'react'; import { useDispatch } from 'react-redux'; import { fetchGames } from './gamesSearchSlice'; const SearchBar = () => { const [query, setQuery] = useState(''); const dispatch = useDispatch(); const onSubmit = (e) => { e.preventDefault(); if (!query) return; dispatch(fetchGames(query)); }; return ( <div className="searchbar"> <form onSubmit={onSubmit}> <input className="searchbar__input" type="text" placeholder="Search for a game..." value={query} onChange={(e) => setQuery(e.target.value)} /> </form> </div> ); }; export default SearchBar;

¿Me estoy perdiendo algún detalle sobre cómo funcionan juntos React y Redux, o hay algún problema con mi código desde una perspectiva fundamental (es decir, no estoy manejando los datos de manera suficientemente eficiente con JavaScript)?

about 4 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 Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda