Vue.js 能否从vuex中创建的钩子调用getter?
我有一个getter返回篮子中的总价格。我需要在组件第一次呈现时调用这个getter。在创建的钩子中调用此getter正确吗Vue.js 能否从vuex中创建的钩子调用getter?,vue.js,vuex,getter,Vue.js,Vuex,Getter,我有一个getter返回篮子中的总价格。我需要在组件第一次呈现时调用这个getter。在创建的钩子中调用此getter正确吗 created(){ return this.$store.getters.getTotalPrice; } getter getTotalPrice(state){ for (let i in state.basket){ state.totalPrice += state.basket[i].productPrice; } }
created(){
return this.$store.getters.getTotalPrice;
}
getter
getTotalPrice(state){
for (let i in state.basket){
state.totalPrice += state.basket[i].productPrice;
}
}
以下是实现此目标的方法: Vue组件:
<script>
export default {
data() {
return {
totalPrice:0
};
},
created: function () {
let self = this;
self.totalPrice = self.$store.getters.getTotalPrice;
console.log(self.totalPrice);
},
};
</script>
你测试过它是否有效吗?是的,我有错误“getTotalPrice未定义”hi@ceren,欢迎来到,所以你的问题的答案是肯定的。你可以建议你查看如何提问的指南,因为这个问题很快就会被否决。。。可能您所面临的问题与在所创建的钩子中调用getter无关,我同意这应该是可行的。Vuex应用商店实现可能存在问题,您没有显示该问题。另外,您正在created()中返回getter,但没有将返回值设置为任何值。此外,getter通常用于返回一个状态。您在修改状态,是否可以改为使用操作?你应该用getter返回一些东西,在创建的钩子中,将getter返回的值分配给一个组件变量,也许请说明你想要实现什么,这样我们可以帮助你更多,引用self有什么意义?它们将指向同一个对象。。如果是self.$商店将在您提出的解决方案中起作用。那这个也行。$商店也行。两者都行。
const getters = {
getTotalPrice: (state) => {
let totalPrice = 0;
for (let i in state.basket){
totalPrice += state.basket[i].productPrice;
}
return totalPrice;
},
};
export default {
state,
mutations,
actions,
getters
}