在data里定义一个变量,但是赋值是赋值不上

在data里定义一个变量,但是赋值是赋值不上,显示为空,怎么解决

img

img

你这个是异步的问题导致的,接口请求的时候,你的值还没有被返回来,直接进入下一个程序操作了,所以没有值,你把赋值操作写在你的 axios请求里面,也就是你的 if 判断里面就行

你这代码问题一大堆
1.你将lists赋值给data,那首先得给lists赋值啊,你把一个空值赋值给另一个空值有啥用
2.打印数组的时候要循环打印,否则打印出来的是数组类型名称

该回答引用GPTᴼᴾᴱᴺᴬᴵ

export default {
fname: "hello",
data() {
return {
ai: "",
b: 0,
date: [],
gatheringSourceOption: "",
gatheringSourceOption1: "",
tableData: [],
lists: [],
zNum: ""
}
}
}

可能有以下几种情况:

  1. 变量名有误:首先要检查变量名是否正确,包括大小写、拼写等。
  2. 变量作用域有误:如果变量的作用域不正确,可能会导致无法赋值。需要确认变量在需要赋值的范围内定义,比如如果是在组件的 data 中定义的变量,需要在该组件内部使用才能正常赋值。
  3. 赋值语句有误:需要检查赋值语句是否正确,语法是否正确,是否缺少必要的符号等。
  4. 引用时机有误:在 Vue 中,如果变量还没有被赋值就被引用了,可能会导致出现空值。需要确保在使用变量前已经对其进行了赋值。

如果以上情况都排查无误,可以考虑在模板中使用 {{ 变量名 }} 来查看变量的实际值,以确定问题出在哪里。

没必要 this.$set(),把这一行代码换为 this.lists = res.msg; 即可

你打印的时间太短,这个时间接口还没请求成功没有附上值,也可以在下面定义方法,在。then里执行这个时候是有值的

   async searchData() {
            let res = await oneEmergency()
            if (res.code == 200) this.lists = res.msg
            console.log(this.lists)
        }