qq_41823086
RookieGz
2018-11-26 06:10
采纳率: 100%
浏览 4.5k

vuex里的state如何监听?

写了一个购物车,添加商品时多次点击同一个商品只显示数量1,添加第二件商品时第一件商品的数量就变成正确的了,数据变化时没有监听到变化,请问各位大佬该怎么解决?
store.js:

        isLogin:false,
        car:[]
    },
    getters:{
        clearUp:function(state){
            return state.car.sort(function(m,n){n-m})
        }
    },
    mutations:{
        addCar:function(state,g){
            var swi = -1
            for(var i in state.car){
                if(state.car[i].id == g.id){
                    swi = i
                    break
                }
            }
            //console.log(swi)
            if (swi != -1){
                state.car[swi].num ++
            }else{
                g.num = 1
                state.car.push(g)
            }
            //console.log(state.car)
        }
 }

监听页:

        chuan:function(){
            return this.$store.getters.clearUp
        }
    },
    watch:{
        clearUp:function(){
            console.log(this.$store.state.car)
            return this.$store.state.car
        }
    }

结构:

```



{{n.name}}


数量:{{n.num}}





总价:{{n.num*n.price}}元
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • qq_41823086
    RookieGz 2018-11-26 07:16
    已采纳

    终于搞明白了,state里无法监听二级数据变化在每一次添加购物车都触发一下car的以及数据变化

    ```state.car.push({})//强制触发state的数据监听
        state.car.pop()
    
    
    
    点赞 评论

相关推荐