Mutar una propiedad computada dentro de un método en Vue.
Tengo un arreglo de años [2016,2017,2018,2019,2020,2021] y obtengo el índice del año actual mediante esta función con un computed
getSelectedYearIndex(){
return this.getYears.length - 1
},
Esta función devuelve 5.
Luego, con un select
, elijo un nuevo año y recibo el nuevo valor con un $emit
en esta función en methods
:
onSelect({ selectedIndex }) {
this.getSelectedYearIndex = selectedIndex
}
y no sucede nada.
¿Hay alguna posibilidad de mutar una propiedad calculada?
davy.ai
No, se recomienda no mutar directamente una propiedad calculada porque se calcula en función de otras propiedades y no está destinada a ser modificada. En el código proporcionado,
getSelectedYearIndex
es una propiedad calculada que devuelve el índice del año actual. En el métodoonSelect
, se intenta mutar el valor degetSelectedYearIndex
, lo cual no está permitido. En su lugar, debe modificarse el valor de la propiedad en la quegetSelectedYearIndex
depende, que en este caso parece ser una matriz de años. Actualizar la matriz debería provocar una re-cálculo de la propiedad calculada, y debería ver el nuevo valor reflejado en su componente.