Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

403
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!