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

96
Visualizações
Cómo actualizar una matriz en un objeto en Javascript

Estoy construyendo un proyecto de reacción y tengo un estado inicial.

 const WalletContext = React.createContext({ hasExpenses: false, wallets: {}, expenses: [], createWallet: () => {}, addExpense: (data) => {}, });

Estoy tratando de agregar un gasto a las wallets . Un gasto será un objeto en sí mismo y al agregar el gasto, uso la id de la billetera para saber a qué billetera agregarlo.

Hay que actualizar otro código, pero lo que quiero es agregar un gasto a mi billetera y actualizar mi estado. Traté de concatenar ese gasto que tengo en mi action.payload . Esta es una declaración if dentro de mi reductor.

 if (action.type === 'ADD') { const updatedHasExpenses = state.expenses.length > 0; state.wallets[action.payload.walletId].concat(action.payload); return { ...state, hasExpenses: updatedHasExpenses, }; }

El problema es que cuando trato de obtener estos datos en uno de mis otros componentes, tengo todas mis identificaciones de billetera, pero cada billetera tiene una matriz vacía asociada y no debería ser el caso una vez que agrego a mi billetera con una identificación de billetera un gasto .

Estoy obteniendo la identificación de la billetera. Esto ya lo verifiqué y le estoy proporcionando a mi componente los datos que tengo de mi contexto. Creo que el problema proviene de mi reductor.

Mi billetera es la siguiente...

 { 'someId': [{'title': 'sometitle', 'category': 'somecategory' }] }

Mi payload es el siguiente...

 { id: Math.random().toString(), walletId, date, title, category, amount, }
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Pruebe Object.assign en lugar de concat y agregue billeteras a su declaración de devolución:

 if (action.type === 'ADD') { const updatedHasExpenses = state.expenses.length > 0; const wallets = Object.assign(state.wallets[action.payload.walletId], action.payload) return { ...state, hasExpenses: updatedHasExpenses, walets: Object.assign(state.wallets, wallets) };

}

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