RookieGz 2018-11-26 06:10 采纳率: 0%
浏览 4756
已采纳

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条回答 默认 最新

  • RookieGz 2018-11-26 07:16
    关注

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

    ```state.car.push({})//强制触发state的数据监听
        state.car.pop()
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 Marscode IDE 如何预览新建的 HTML 文件
  • ¥15 K8S部署二进制集群过程中calico一直报错
  • ¥15 java python或者任何一种编程语言复刻一个网页
  • ¥20 如何通过代码传输视频到亚马逊平台
  • ¥15 php查询mysql数据库并显示至下拉列表中
  • ¥15 freertos下使用外部中断失效
  • ¥15 输入的char字符转为int类型,不是对应的ascall码,如何才能使之转换为对应ascall码?或者使输入的char字符可以正常与其他字符比较?
  • ¥15 devserver配置完 启动服务 无法访问static上的资源
  • ¥15 解决websocket跟c#客户端通信
  • ¥30 Python调用dll文件输出Nan重置dll状态