老师,这是添加成功的情况下,如果不成功的话,错误又被拦截了,怎么实现modal组件中btnType=2的情况

来源:9-1 商品详情交互实现

慕姐7007955

2021-10-29

就是在index首页里添加商品购物车的时候,如果添加成功,就会出现遮罩以及跳出弹窗,如下:

http://img.mukewang.com/szimg/617ba27b0964ad8310270511.jpg

 async  addToCart(id){

  this.axios.post('/carts',{

      productId:id,

      selected:true

    }).then((res={})=>{

      this.$store.commit('getCartCount',res.cartTotalQuantity)

      this.showModal = true

      this.btnType = '1'

    })

  },

正常情况就是请求成功并提示去购物车,但是如果请求失败之后被拦截,弹窗无法弹出,因为main.js中拦截掉了

let path = location.hash

axios.interceptors.response.use(function (response) {

  let res = response.data

  if (res.status == 0) return res.data

  else if (res.status == 10) {

    if (path != '#/index' && path !== '#/') {

      window.location.href = '/#/login'

    }

    return Promise.reject(res)

  }

  else {

    alert(res.msg)

    return Promise.reject(res)

  }

})

我的问题是怎么提示用户添加购物车失败,出现弹窗效果


写回答

2回答

河畔一角

2021-10-29

axios的interceptor拦截器里面根据状态码进行错误拦截,统一展示。所以添加失败的时候,往往是接口报错了才会添加失败,接口报错了,可以在拦截器里面统一处理。课程这块是有讲的,你的代码不完整或者还没看到这一部分。

课程使用Message.error(res.data.message);来做错误提示的。

0
1
慕姐7007955
非常感谢!
2021-10-29
共1条回复

河畔一角

2021-10-29

我似乎没看懂你的问题?能否重新描述,配上截图?或者再课程群跟我沟通一下?

0
2
慕姐7007955
老师不用答了,我解决了,直接在后面加就showmodal和改按钮类型就可以了,因为第一步是跳转到cart页面,如果没跳转就可以执行不跳转的代码了
2021-10-29
共2条回复

Vue全家桶实战 从零独立开发企业级电商系统

Vue全家桶构建企业级电商系统,真实服务端数据对接,高实用性

2560 学习 · 1307 问题

查看课程