写实训课项目调用字段一直报错无法读取未定义的属性(读取'url')
因为是调用的接口,接口数据是包含图片路径url的
尝试过为musicList定义一样的属性字段
musicList: [{
describes: '',
id: '',
music: '',
music_list: '',
name: '',
play_number: '',
url: ''
}],
但是只有第一张图片不报错,其他的一样会报错
解决办法:
在获取数据的时候给一个对应的index索引值让它一次只获取一条数据,这样就可以直接调用想要的图片等数据。
获取数据前声明一个index
let that = this
let index = that.index
将获取的数据赋值
that.musicList = res.data[index]
完整代码
<template>
<view>
<view class="lplp">
<image class="lol" :src="musicList.url" mode=""></image>
</view>
</view>
</template>
<script>
// var musicList = musicList[]
export default {
data() {
return {
// 需要为musicList定义与获取到的数组属性字段一样的字段,否则虽然能够获取到数据,但是会报错
musicList: [{
describes: '',
id: '',
music: '',
music_list: '',
name: '',
play_number: '',
url: ''
}],
// musicList: '',
index: ''
}
},
methods: {
onLoad(option) {
// 获取携带的参数值
let that = this
console.log(option.id),
// 获取索引
that.index = option.id - 1
this.getMusic()
console.log(this.index)
},
getMusic() {
let that = this
let index = that.index
uni.request({
url: 'http://47.108.157.232:8889/getRankList',
success(res) {
//需要为musicList定义与获取到的数组属性字段一样的字段,否则虽然能够获取到数据,但是会报错
//一次性获取多条数据会报错声明一个参数index直接获取跳转携带的参数值的对应数组的数据填充到musicList
that.musicList = res.data[index]
console.log(that.musicList)
}
})
},
},
}
</script>
<style lang="less" scoped>
.lplp {
width: 100%;
height: 300px;
}
.lol {
width: 200px;
height: 200px;
border-radius: 15px;
}
</style>
参数id是我携参跳转带的参数值。