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

404
Visualizações
Angular + redux + ngrx: obtener datos

Estoy escribiendo mi primera aplicación Angular 2/4 con redux (soy nuevo en este patrón) y tengo un problema. Estoy usando @ngrx/tienda

Hay un modelo, llamado Contenido. Mi tienda (app.store.ts) es:

 export interface AppStore { contents: {id: number, Content}; contentContents: {id: number, Array}; }

'contenido' tiene una lista de todos los contenidos (id 1, contenido 1; id 2, contenido 2). 'contentContents' tiene una lista de contenidos y su hijo. Un contenido puede tener contenidos secundarios. Así que quiero mantener un objeto como:

{ 1: [2, 3, 6], 2: [7, 9, 10], 6: [11, 4, 5] }

Mis reductores ya están haciendo esto, pero tengo problemas.

He seleccionado el contenidoContenidos:

 let subscription = this.store.select( store => { return store.contentContents; })

y suscrito a él:

 subscription.subscribe( contentContents => { })

¿Hay alguna forma de suscribirse a un elemento en particular de contentContents? Quiero decir, quiero saber cuándo se cambia un elemento en particular de contentContents. Ejemplo: el componente que muestra el contenido n. ° 1 debe recibir una advertencia solo cuando se cambia contentContents [1], pero en la forma en que lo he creado, recibe una advertencia cada vez que se cambia contentContents.

Otra cosa, si puedo resolver el primer problema: ¿hay alguna forma de consultar desde la tienda el contenido de una identificación en particular?

Digamos que tengo esto: 1: [2, 3, 6] El contenido #1 tiene los contenidos #2, #3 y #6 como hijo. Cómo obtener contenido n.° 2, contenido n.° 3 y contenido n.° 6

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Ya hace un tiempo que preguntaste esto, pero tal vez aún sea útil:

NGRX tiene selectores memorizados que se crean automáticamente cuando usa la función de selección o que se pueden crear explícitamente: https://github.com/ngrx/platform/blob/master/docs/store/selectors.md

Entonces, para recibir una notificación sobre un cambio de un elemento específico, escribiría una función para seleccionar ese elemento. Algo así como function getContentById(id:number,contentContents){ return contentContents.filter(contentContent.id === id)); }

Luego crea un observable que utilice esta función:

content1$ = this.store.select(s => getContentById(s.contentContents,1))

y suscríbase a esto en la interfaz de usuario con una tubería asíncrona en lugar de una suscripción explícita en su componente <div>{{content1$|async}}</div> De esta manera, no necesita darse de baja de la suscripción manualmente https: //angular.io/api/common/AsyncPipe

over 4 years ago · Santiago Trujillo Relatório

0

prueba esto.

 subscription.map(contentContents => contentContents.filter(contentContent.id === reqContent.id));

la suscripción

 subscription.subscribe( contentContent => { console.log('contentContent', contentContent); })
over 4 years ago · Santiago Trujillo 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