[vue3]判断存放在state里面的变量的返回值为proxy {}时为空

先说判断方法:通过JSON.stringify将返回的proxy数据转换成字符串,在判断是否为空

// 如果此时options.value的返回值是proxy {}
console.log(JSON.stringify(options.value) === '{}')		// true
// 如果此时options.value的返回值是proxy{nodeList: Array(7), edgeList: Array(8)}
console.log(JSON.stringify(options.value) === '{}')		// false

if(JSON.stringify(options.value) !== '{}') {
 	...
}else {
	...
}

其实如果是用ref或reactive定义的变量,在判断值是否为空时

let options = ref({})
console.log(options.value === {})		// true

也许是因为我当前的场景是,使用vuex的actions调接口,将接口返回的数据options存放在store里面,所以导致了不能直接判断

import { getTepologyGraph } from '@/service/serviceTepology'
import { ElMessage } from 'element-plus'

export default {
  namespaced: true,
  state: {
    options: {}
  },
  mutations: {
    GET_DATA(state, data) {
      state.options = data || {}
    }
  },
  actions: {
    async getTepologyData({commit }, data) {
      try{
        let res: any = await getTepologyGraph(data)
        if(res?.status === '200') {
          commit('GET_DATA', res?.data || {})
        }else {
          commit('GET_DATA', {})
          ElMessage.error(res?.message)
        }   
      }catch(err) {
        commit('GET_DATA', {})
      }           
    }
  }
}
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值