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

122
Visualizações
(Reaccionar) El estado de Redux no filtra

Puedo cambiar un elemento en mi lista si el valor de la propiedad booleana del elemento cambia, mi lista se actualiza. Sin embargo, si trato de cambiar una propiedad de cadena y devuelvo la carga útil, mi lista no se actualiza.

Esto funciona cuando cambio directamente el artículo y lo devuelvo.

 case UPDATED_LISTITEM: let newList = state.list.filter((item) => { if (item._id !== payload._id) { return item; } else { item.title = payload.title; item.checked = payload.checked; return item; } }); return { ...state, list: newList, };

Esto no funciona cuando trato de devolver la carga útil y solo actualizo el 'título'. Si actualizo el 'marcado', el estado vuelve correctamente.

 case UPDATED_LISTITEM: return { ...state, list: state.list.filter((item) => { if (item._id !== payload._id) { return item; } else { return payload; } }), };
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Hay un par de problemas diferentes aquí.

Una es que este código está mutando el item , y eso nunca se permite cuando se usa Redux:

 item.title = payload.title; item.checked = payload.checked;

Redux requiere actualizaciones inmutables, lo que significa hacer siempre copias de los datos.

Otra es que está utilizando el método de matriz incorrecto. Está llamando a list.filter() , pero siempre está devolviendo artículos. Creo que quieres usar list.map() en su lugar.

Más allá de eso, me temo que el estilo de código Redux que estás escribiendo está muy desactualizado. Parece que está "escribiendo a mano" sus reductores, actualizaciones inmutables y tipos de acción.

Hoy, enseñamos "Redux moderno" con Redux Toolkit y la API de ganchos React-Redux, que es mucho más simple de aprender y usar. El código que está escribiendo se ejecutará , pero requerirá escribir al menos 4 veces más código y será más confuso.

Recomiendo encarecidamente leer nuestros tutoriales oficiales de documentos de Redux, que enseñan Redux Toolkit y React-Redux hooks como el enfoque estándar:

https://redux.js.org/tutorials/index

about 4 years ago · Juan Pablo Isaza Relatório

0

Versión sin mutar el estado:

 case UPDATED_LISTITEM: return { ...state, list: state.list.map((item) => ({ ...item, // item must not contain more deeply nested objects! // Update title and checked from payload ...( item._id === payload._id ? { title: payload.title, checked: payload.checked } : {} ) }), };

Como decía la otra respuesta, es más fácil con el kit de herramientas redux. La forma antigua consiste en reconstruir cuidadosamente el estado, con un uso intensivo del operador de propagación ( ... ). Es propenso a errores con objetos profundamente anidados.

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