Vuex 状态返回不正确的值
Vuex state returning incorrect value
我遇到了一个问题,我从商店中获得了意外的价值。
我有一个组件只有一种方法:
methods: {
setProduct(product) {
this.$store.commit('basket/empty');
console.log(this.$store.state.basket.items);
this.$store.commit("basket/addToBasket", {
id: product.id
});
},
},
它只是清空购物篮并添加一个新产品,因此购物篮中可以随时存在一个产品。
我的问题是控制台日志返回了一个产品。
而不是空数组。如果我删除
this.$store.commit("basket/addToBasket", {
id: product.id
});
是returns
有人能告诉我为什么 console.log 在提交尚未发生时返回项目吗?
Basket.js
const state = {
items: []
};
const getters = {};
const actions = {};
const mutations = {
empty (state) {
state.items = [];
},
addToBasket (state, product) {
state.items.push(product);
},
};
export default {
namespaced: true,
state,
getters,
actions,
mutations
};
开发人员控制台能够在记录引用变量(如数组或对象)时更新数据。
当您在控制台中单击以展开时,它会按您单击控制台时的原样显示变量,而不是记录它时的变量。这意味着它不一定反映记录时 items
变量的值。
在这种情况下,日志发生时items
数组为空,但当您单击展开属性时,数组包含新的id。
这里有一个 demo 可以进一步说明这一点。
我遇到了一个问题,我从商店中获得了意外的价值。
我有一个组件只有一种方法:
methods: {
setProduct(product) {
this.$store.commit('basket/empty');
console.log(this.$store.state.basket.items);
this.$store.commit("basket/addToBasket", {
id: product.id
});
},
},
它只是清空购物篮并添加一个新产品,因此购物篮中可以随时存在一个产品。
我的问题是控制台日志返回了一个产品。
而不是空数组。如果我删除
this.$store.commit("basket/addToBasket", {
id: product.id
});
是returns
有人能告诉我为什么 console.log 在提交尚未发生时返回项目吗?
Basket.js
const state = {
items: []
};
const getters = {};
const actions = {};
const mutations = {
empty (state) {
state.items = [];
},
addToBasket (state, product) {
state.items.push(product);
},
};
export default {
namespaced: true,
state,
getters,
actions,
mutations
};
开发人员控制台能够在记录引用变量(如数组或对象)时更新数据。
当您在控制台中单击以展开时,它会按您单击控制台时的原样显示变量,而不是记录它时的变量。这意味着它不一定反映记录时 items
变量的值。
在这种情况下,日志发生时items
数组为空,但当您单击展开属性时,数组包含新的id。
这里有一个 demo 可以进一步说明这一点。