vue3中,一个对象可以渲染,对象的属性却不可以渲染?

我从后端请求回一个数据,是一个数组,其中包含若干对象,我把它赋值给data,然后在模板里进行渲染,data【0】是可以正常渲染的,但是data【0】里的属性值却渲染不出来,好奇怪,而且我也做过类型检测,data【0】的的确确是一个对象,就是访问不了属性,这是为什么,求解答,困扰两天了!!

<template>

<div>

<div>测试</div>

<div>{{ data[0] }}</div>

</div>

<button>切换</button>

</template>

<script>

import { reactive, ref, onMounted,computed } from "vue";

import axios from 'axios'

export default ({

setup() {

var data = ref([])

onMounted(async () => {

const resdata = await axios.get('/api/dynastypoets?name=唐代')

console.log(resdata.data[0])

console.log('onmount触发')

data.value=resdata.data[0]

console.log(data.value)

console.log(data.value[0])

})

return { data };

}

});

</script>

<style scoped></style>

vue3中,一个对象可以渲染,对象的属性却不可以渲染?

<template>

<div>

<div>测试</div>

<div>{{ data[0].dname }}</div>

</div>

<button>切换</button>

</template>

<script>

import { reactive, ref, onMounted,computed } from "vue";

import axios from 'axios'

export default ({

setup() {

var data = ref([])

onMounted(async () => {

const resdata = await axios.get('/api/dynastypoets?name=唐代')

console.log(resdata.data[0])

console.log('onmount触发')

data.value=resdata.data[0]

console.log(data.value)

console.log(data.value[0])

})

return { data };

}

});

</script>

vue3中,一个对象可以渲染,对象的属性却不可以渲染?


回答:

页面渲染是不会等你数据加载的,在你的数据返回之前,data[0] = undefined,所以会报错。
可以改成

<div v-if="data.length">

<div>测试</div>

<div>{{ data[0].dname }}</div>

</div>

或者

<div>

<div>测试</div>

<div>{{ data[0] && data[0].dname }}</div>

</div>

以上是 vue3中,一个对象可以渲染,对象的属性却不可以渲染? 的全部内容, 来源链接: utcz.com/p/933969.html

回到顶部