js字典取值为undefined

我在用vue和七牛实现一个多图片上传的功能,在vuex里定义了一个字典imgName

//state.js

imgName: {}, //上传的图片名称

在上传方法里面我生成了一个随机字符串timestamp

const timestamp = Math.random().toString(36).substring(2)

当从后端拿到图片名称后,将timestamp和图片名称放到imgName里面

//mutations.js

//设置上传图片的信息
  setImgInfo(state, msg) {
    state.imgName[msg.timestamp] = msg.key
  },

结果我用timestamp从imgName里取出图片名时告诉我undefined,可是我打印imgName是有信息的啊

console.log(this.imgName)
console.log(`时间戳为${timestamp}的图片名:${this.imgName[timestamp]}`)

图片描述

阅读 4.5k
1 个回答

console.log(JSON.stringify(this.imgName)); 看看打印结果是什么,我感觉this.imgName就是一个空对象...
如果的确是空对象的话,为什么你console.log(this.imgName)却看到imgName不是空对象?那是因为,对象是引用类型的。你在console.log中试下下面这几行代码

const bar = {}
console.log(bar);
bar.a = 111;

注意,这几行代码都输完后,再去点那个小三角,查看bar对象

推荐问题
logo
七牛云问答
子站问答
访问
宣传栏