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