es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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?

Tags:  , ,

Answer

  1. Avatar for 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étodo onSelect, se intenta mutar el valor de getSelectedYearIndex, lo cual no está permitido. En su lugar, debe modificarse el valor de la propiedad en la que getSelectedYearIndex 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.

Comments are closed.