vuejs vue tutorial mutations mutaciones modulos modules las getters espaƱol acciones vue.js vuex

vue.js - tutorial - vuex modulos



Vuex getter no se actualiza (1)

Tengo el siguiente getter:

withEarmarks: state => { var count = 0; for (let l of state.laptops) { if (l.earmarks.length > 0) { count++; } } return count; }

Y en un componente, esta propiedad calculada derivada de ese getter:

withEarmarks() { return this.$store.getters.withEarmarks; },

El valor devuelto es correcto, hasta que cambio un elemento dentro de la matriz de computadoras portátiles, y luego el getter no se actualiza.


En su caso, state.laptops.earmarks es una matriz, y la está manipulando con su índice de matriz state.laptops[index] . Vue no puede reaccionar a las mutaciones en las matrices de estado (por índice). La documentación proporciona 2 soluciones para esto:

// 1. use purpose built vue method: Vue.set(state.laptops, index, laptop) // 2. splice the value in at an index: state.laptops.splice(index, 1, laptop)

Aunque está documentado, creo que un letrero brillante de neón gigante en esa página que dice "perderá horas de productividad si no lo sabe" sería una buena adición .

Puede leer más sobre esta "advertencia" aquí: https://vuejs.org/v2/guide/list.html#Caveats