老师,我有一个vuex的问题,想麻烦您帮忙看一下。

来源:8-3 vuex在项目中的应用(2)

qq_青空_4

2018-01-20

我说得具体点吧。

就是要做一个购物车,类似于饿了么的那种。

点击商品的时候购物车会实时的显示条目,像下面这样

//img.mukewang.com/szimg/5a6354bf00013e6902980143.jpg

然后实时的向store里面添加数据,数据格式像下面这样

foodInfo这个数组第一个对象后的那个逗号忘了删,我想说的就是该数组里面有N个类似对象

//img.mukewang.com/szimg/5a6355620001755805720260.jpg

接着我想购物车的数量选择器组件的count绑定state.shopCart.foodInfo.count

忘了说,计算属性里拿到count是用v-model绑定在input上的

//img.mukewang.com/szimg/5a6356950001b47607090258.jpg

store里getters是这样写的

//img.mukewang.com/szimg/5a63571c0001abe305520188.jpg

最后点击购物车里数量加减的按钮的时候,就报错

  Computed property "count" was assigned to but it has no setter.不响应。

这种情况下要怎么去获取响应式的count呢?

写回答

1回答

fishenal

2018-01-22

看错误好像是说计算属性count没有setter,但只有一个方法应该是getter和setter都包含了。我用你的方法试了一下没什么问题,就计算属性,我是这么写的:

const getters = {
  getCount: (state) => (index) => {
    return state.count + '/index: ' + index
  }
}
  computed: {
    count () {
      return this.$store.getters.getCount(5)
    }
  }

加减我觉得直接用mutation就行了,可以跳过action这一层,看你逻辑的复杂度了

0
0

最容易上手的Vue2.0入门实战教程

快速入门Vue2.0,组件化开发一个数字产品电商平台

3966 学习 · 999 问题

查看课程