Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

161
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda