请问vue的html标签可以用v-model来改变store中的state吗?

图片描述

图片描述
第二张图片中,我用一个change事件监测按钮变化,this.cart和this.$store.state.cart
的console.log都是一样的,这个说明了state中的状态也跟着变了吗?但是我又尝试在change方法中人为的赋值this.cart=[]为空,可是再console.log(this.cart.length),竟然没有变,也就是说我自己赋值没有用,可为什么v-model却能改变呢

阅读 6k
2 个回答

要改变vuex里面的state只能通过mutations和actions啊

vuex提供的this.$store.state可以直接修改,它本身是可变对象,在vuex没开严格模式下不会报警告

你的场景可以使用计算属性的setter,即将store中的数据弄成computed给v-model用,再额外给这个computed一个setter,在v-model修改computed时触发动作修改全局state即可。

vuex的mapGetter我没记错的话是不会提供setter的

1 篇内容引用
推荐问题
宣传栏