第二张图片中,我用一个change事件监测按钮变化,this.cart和this.$store.state.cart
的console.log都是一样的,这个说明了state中的状态也跟着变了吗?但是我又尝试在change方法中人为的赋值this.cart=[]为空,可是再console.log(this.cart.length),竟然没有变,也就是说我自己赋值没有用,可为什么v-model却能改变呢
第二张图片中,我用一个change事件监测按钮变化,this.cart和this.$store.state.cart
的console.log都是一样的,这个说明了state中的状态也跟着变了吗?但是我又尝试在change方法中人为的赋值this.cart=[]为空,可是再console.log(this.cart.length),竟然没有变,也就是说我自己赋值没有用,可为什么v-model却能改变呢
vuex提供的this.$store.state可以直接修改,它本身是可变对象,在vuex没开严格模式下不会报警告
你的场景可以使用计算属性的setter,即将store中的数据弄成computed给v-model用,再额外给这个computed一个setter,在v-model修改computed时触发动作修改全局state即可。
vuex的mapGetter我没记错的话是不会提供setter的
6 回答2.8k 阅读✓ 已解决
6 回答2.1k 阅读
5 回答6.2k 阅读✓ 已解决
2 回答1.9k 阅读✓ 已解决
2 回答1.5k 阅读✓ 已解决
4 回答2.6k 阅读
2 回答915 阅读✓ 已解决
要改变vuex里面的state只能通过mutations和actions啊