elementui的Image组件的大图预览功能,第一次点击图片的时候并没有出现大图,可能是渲染不及时的问题?
<el-image style="width: 100px; height: 100px"
:src="url"
@click="getSrcList(scope.row)"
:preview-src-list="srcList">
</el-image>
getSrcList(row){
console.log(row.id)
this.$nextTick(()=>{
this.srcList=[
'/wp-content/uploads/new2024/02/20240204vue1234/f01c15bb73e1ef3793e64e6b7bbccjpeg1276.jpeg',
'/wp-content/uploads/new2024/02/20240204vue1234/aeffeb4de74e2fde4bd74fc7b4486jpeg1278.jpeg'
]
})
}
elementui的Image组件的大图预览功能,第一次点击图片的时候并没有出现大图,可能是渲染不及时的问题?
回答:
async getSrcList(row){ console.log(row.id)
await this.$nextTick();
this.srcList=[
'/wp-content/uploads/new2024/02/20240204vue1234/f01c15bb73e1ef3793e64e6b7bbccjpeg1276.jpeg',
'/wp-content/uploads/new2024/02/20240204vue1234/aeffeb4de74e2fde4bd74fc7b4486jpeg1278.jpeg'
]
}
回答:
把srcList直接放data里面就可以了
回答:
不要点击后在去赋值,特别还是加上了 $nextTick
。
我猜测你的 url
是循环出来的,或者说是在 table
内部的,所以直接在获取到 tableData
的时候把预览地址处理好。然后再循环或者table
内部直接赋值。
比如说接收数据的时候这样处理:
getTableData(){ featchTableData(queryParams).then(res => {
this.tableData = res.data.map(item => ({
...item,
// 这里直接处理好预览图列表
urlList: ['/wp-content/uploads/new2024/02/20240204vue1234/f01c15bb73e1ef3793e64e6b7bbccjpeg1276.jpeg', '/wp-content/uploads/new2024/02/20240204vue1234/aeffeb4de74e2fde4bd74fc7b4486jpeg1278.jpeg']
}))
})
}
然后直接绑定上去就好了。
<el-image :src="row.url" :previe-src-list="row.urlList" />
当然如果你懒得这样处理,也可以稍微改写一下通过函数返回即可:
<template> ...
<el-image
style="width: 100px; height: 100px"
:src="url"
:preview-src-list="getSrcList(scope.row)">
</el-image>
...
</template>
<script>
export default {
...
methods: {
...
getSrcList(row){
return ['/wp-content/uploads/new2024/02/20240204vue1234/f01c15bb73e1ef3793e64e6b7bbccjpeg1276.jpeg', '/wp-content/uploads/new2024/02/20240204vue1234/aeffeb4de74e2fde4bd74fc7b4486jpeg1278.jpeg']
}
}
}
以上是 elementui的Image组件的大图预览功能,第一次点击图片的时候并没有出现大图,可能是渲染不及时的问题? 的全部内容, 来源链接: utcz.com/p/934408.html