Quiero cambiar los nombres de los elementos de mis filtros de búsqueda en la interfaz y encontré eso al usar:
<ais-refinement-list [..] :transform-items="transformItems" /> </ais-refinement-list>Luego puedo redefinir las etiquetas de las listas en un método ( documentos de Algolia ):
transformItems: function(items) { return items.map(item => ({ ...item, label: item.label.toLowerCase(), })); },Pero lo que tengo que hacer es cambiar el nombre de los 6 filtros/facetas para el front-end y pensé que tenía que hacerlo con varias sentencias if(). Pero, ¿cómo hago eso en este método map()? Por ejemplo, ¿cómo puedo cambiar el nombre del elemento con la etiqueta 'MC' a 'Opción múltiple'? Intenté solo escribir
transformItems: function(items) { return items.map(item => ({ ...item, if(item.label == 'MC'){ label: 'Multiple Choice', }else{ label: item.label, } })); },Pero eso fracasó espectacularmente. ¿Cuál es la forma correcta de resolver esto?
Seguramente hay una mejor manera, pero lo resolví subcontratando la condición if en otro método llamado "rename(item.label)" donde doy la etiqueta cambiada como valor de retorno y en la función map() simplemente digo "label: rename (artículo.etiqueta)".
función de mapa:
transformItems: function(items) { return items.map(item => ({ ...item, label: this.rename(item.label), })); },nuevo método de cambio de nombre:
rename : function(label){ // Rename MC to Multiple Choice if(label === 'MC'){ label = 'Multiple Choice' } [..] //other renaming if conditions return label },