省流版:ref(0)中放0占位,就可以解决了
正文
具体问题代码如下
<template>
<div>
<h2>{{userInfo.uid}}</h2>
</div>
</template>
//setup中定义一个接收的变量
const userInfo = ref();
//通过axios请求后端数据赋值给userInfo
getUserInfo().then(res => {
userInfo.value = res.data
})
//后面需要将userInfo return出去才能在template中使用
结果控制台报错如下

把h2的那段代码去掉,控制台打印出userInfo的结果是有uid的值

因为在另外几个组件也是这样的写法,但是却能正常的渲染出来,在网上找了很久也没有解决这个问题,然后我又试了一下以下这样的写法。
<div v-for="(item,index) in userInfo">
<h2>{{userInfo.uid}}</h2>
</div>结果能渲染了,但却是。。

对比了其他组件的写法发现,别的组件没出错的原因是后端传回的数据是array类型的,而上述出错的数据是object类型的。
解决办法:在ref()里面放个0占位就可以了(放null和undefind都不行----emmm具体什么原因我也不太懂,新手一枚,欢迎各位大佬指正!)
const userInfo = ref(0);
版权声明:本文为weixin_52378924原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。