Saltar al contenido

Uso de Array.map en interpolación angular

Ten en cuenta que en las ciencias cualquier problema casi siempre tiene diversas soluciones, por lo tanto aquí enseñamos lo más óptimo y eficiente.

Solución:

No puede definir funciones en expresiones angulares. Así que tienes que usar tubería en cambio, que están optimizados para las plantillas. Son reutilizables en otros componentes.

 json 

Con un tubo de arranque:

@Pipe(name: 'pluck')
export class PluckPipe implements PipeTransform 
  transform (input: any[], key: string): any 
      return input.map(value => value[key]);
  

No se recomienda llamar a funciones en el componente para calcular valores para la plantilla. Esta se mueve trabajar desde el componente a la plantilla, y si necesita datos para ser mutado entonces haz ese trabajo en ngOnInit() o en ngOnChanges() en lugar de.

Las tuberías tienen pureza lo que significa que se ejecutan solo cuando los datos entrantes son mutado. Cuando llamas a una función como doWork(object.array) entonces Angular no sabe si la función doWork() es puro O no. Entonces asume que no es puro y lo llama para cada detección de cambio.

Actualizado:

Cada vez que trabaje con matrices en Angular, debe tratarlas como inmutables. Donde crea una nueva instancia de ese Array cuando necesita modificarlo. Por ejemplo; items = [...items, newItem]; en lugar de items.push(newItems).

Esto resuelve problemas de detección de cambios relacionados con tuberías, ngFor, detección de cambios OnPush y tiendas de estado.

https://medium.com/dailyjs/el-estado-de-inmutabilidad-169d2cd11310

podría encontrar algunas soluciones para que esto funcione, pero mi respuesta es que no debe hacer esto, ya que las llamadas a funciones en la plantilla afectan negativamente el rendimiento, al igual que las tuberías impuras que esto requeriría para ser confiables.

Considere en su lugar:

mappedArray = [];

ngOnInit() 
  this.mappedArray = object.array.map( (o)=> o.property );


 mappedArray 

limpio, confiable, fácil de leer/modificar y fácil de entender. También brinda un control más preciso sobre cuándo se evalúan sus funciones.

valoraciones y comentarios

Si guardas alguna desconfianza o forma de reaccionar nuestro tutorial te mencionamos añadir una explicación y con gusto lo observaremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *