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

211
Visualizações
Eliminar valor de una matriz anidada en un objeto también anidado en una matriz

Tengo un problema con mi código. Actualmente tengo algunos datos como el siguiente;

 users: [ { name: 'bolu', features: ['Tall'], }, { name: 'cam', features: ['Bearded', 'Short'], }, ], };

Lo que estoy tratando de hacer es eliminar/eliminar una sola característica, por ejemplo, si paso 'breve' en mi acción redux. Me gustaría que (el texto 'Corto') se elimine de la matriz de funciones. Actualmente tengo mi acción redux configurada de esta manera:

 export interface UsersDataState { name: string, features: Array<string>, } export interface UsersState { users: UsersDataState[]; } const initialState: UsersState = { users: [], }; export const usersSlice = createSlice({ name: 'users', initialState, reducers: { removeUser: (state, action: PayloadAction<string>) => { const removedUsers = state.users.filter((user) => user.features.indexOf(action.payload)); state.users = removedUsers; }, }, });

Así que aquí estoy pasando el valor en ( action.payload es el valor que se pasa). Cuando se envía esta acción, quiero eliminar solo la palabra que se pasa de la matriz de funciones. Espero que esto sea más claro ahora.

Esto no funciona por alguna razón y no puedo entender por qué. Cualquier ayuda sería apreciada por favor, gracias.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

  1. Su código no coincide con la estructura de su estado. Reemplace traits con users y values con features .

  2. Parece que eso es parte de un reductor, no una acción (que es un objeto, no una función).

  3. Debería devolver un nuevo estado del reductor.

  4. Dada su actualización, la función debería llamarse removeFeature .

Entonces, he corregido algunos fragmentos de su código según lo que recuerdo de Redux. Nota: ejemplo artificial.

 // State const state={users:[{name:"joe",features:["Mean","Short"]},{name:"bolu",features:["Tall"]},{name:"cam",features:["Bearded","Short"]}]}; // The reducer accepts a state, and an action function reducer(state, action) { // We destructure the type, and payload, from the action object const { type, payload } = action; // Depending on the type... switch (type) { case 'removeFeature': { // `map` over the users (we return a new state array) return state.users.map(user => { // `filter` out the feature elements // that match the payload const updatedFeatures = user.features.filter(feature => { return feature !== payload; }); // Return a new updated object return { ...user, features: updatedFeatures }; }); } default: return state; } } const updatedState = reducer(state, { type: 'removeFeature', payload: 'Short' }); console.log(updatedState);

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