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

150
Vistas
estado de restablecimiento redux al cambiar de página

ingrese la descripción de la imagen aquí Así que implementé el desplazamiento infinito con redux. Todo funciona, solo que cuando cambio de página y vuelvo a la página de inicio, muestra las publicaciones a las que me desplacé hacia abajo anteriormente. Mi problema con esto es que cuando creo una nueva publicación, se muestra en la parte inferior porque muestra las publicaciones anteriores a las que me desplacé primero y luego la publicación recién creada. He estado recorriendo aquí y lo único que me pareció lógico fue restablecer el estado en el desmontaje del componente. Lo creé en mis acciones y lo agregué a mi useEffect y todavía no funciona. ¿Hay alguna manera cuando salgo de mi página de inicio, se reiniciará para que cuando regrese a mi página de inicio vuelva a buscar todas las publicaciones? Estoy atascado. Ayuda por favor

Página principal

 const [page, setPage] = useState(1); const dispatch = useDispatch(); const { loading, posts, total } = useSelector((state) => state.posts); useEffect(() => { dispatch(getPosts(page)); return () => { dispatch(resetPosts()); }; }, [dispatch, page]);

Comportamiento

 export const getPosts = (page) => async (dispatch) => { try { const { data: { posts, totalPosts }, } = await api.fetchPosts(page); dispatch({ type: PC.FETCH_ALL_POSTS_SUCCESS, payload: { posts, totalPosts }, }); } catch (error) { dispatch({ type: PC.FETCH_ALL_POSTS_FAIL, payload: error.response }); } }; export const resetPosts = () => { return { type: PC.RESET_POSTS }; };

reductores

 export const postsReducer = (state = { posts: [] }, action) => { switch (action.type) { case PC.FETCH_ALL_POSTS_REQUEST: return { loading: true }; case PC.FETCH_ALL_POSTS_SUCCESS: return { loading: false, posts: [...state.posts, ...action.payload.posts], total: action.payload.totalPosts, }; case PC.FETCH_ALL_POSTS_FAIL: return { loading: false, error: action.payload }; case PC.RESET_POSTS: return state; case PC.CREATE_POST: return { ...state, posts: [...state.posts, action.payload] };
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Parece que está almacenando su estado redux incorrectamente. Intente editar su lógica donde está utilizando el operador de propagación. Probablemente debería ser

 return { loading: false, posts: action.payload.posts, total: action.payload.totalPosts, }

De esta manera, en realidad está actualizando su estado y no haciendo que todo su estado sea solo una gran matriz de publicaciones. Puedo ver lo que estaba tratando de hacer, pero eso solo es realmente necesario si está haciendo su objeto de retorno como

 return { ...state, posts: action.payload.data }

y necesita mantener otras variables de estado junto con las publicaciones.

Una herramienta que podría ayudarlo a depurar esto mejor en el futuro son las herramientas de desarrollo de Redux Chrome. https://chrome.google.com/webstore/detail/redux-devtools/lmhkpmbekcpmknklioeibfkpmmfibljd?hl=en

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