javascript - 使用 Nuxt 和 Vuetify 的头像选择器
问题描述
我在制作头像选择器时遇到了一些问题......
单击以选择未替换的头像并出现错误TypeError: Cannot read property 'src' of undefined at VueComponent.selectAvatar
我目前正在使用 Vuetify 和v-avatar
带有 v-for 的组件来加载所有图像。
知道如何使它工作吗?
HTML
<v-flex xs12 pt-0 pb-0>
<h1 class="title mb-4">User Details</h1>
<v-avatar
size="100px"
>
<img
:src="this.selectedAvatar"
alt="Avatar"
>
</v-avatar>
</v-flex>
<v-flex x12>
<v-btn
color="primary"
flat="flat"
small
@click="selectAvatarDialog = true"
class="avatar-btn"
>
Update avatar
</v-btn>
</v-flex>
<v-dialog
v-model="selectAvatarDialog"
max-width="80%"
>
<v-card>
<v-container fluid pa-2>
<v-layout row wrap align-center justify-center fill-height>
<v-flex xs6 sm4 md3 lg2 my-2 class="text-xs-center"
v-for="(avatar,i) in avatars"
:key="i">
<v-img
:src="avatar.src"
aspect-ratio="1"
width="100px"
max-width="100px"
min-width="100px"
class="dialog-avatar-img"
@click="selectAvatar()"
></v-img>
</v-flex>
</v-layout>
<v-card-actions class="mt-2">
<v-spacer></v-spacer>
<v-btn
color="primary"
flat="flat"
@click="selectAvatarDialog = false"
>
Cancel
</v-btn>
</v-card-actions>
</v-container>
</v-card>
</v-dialog>
JS
export default {
layout: 'default',
data() {
return {
selectAvatarDialog: false,
avatars: [
{src: require('@/assets/images/avatar-01.png') },
{ src: require('@/assets/images/avatar-02.png') },
{ src: require('@/assets/images/avatar-03.png') },
{ src: require('@/assets/images/avatar-04.png') },
{ src: require('@/assets/images/avatar-05.png') }
],
selectedAvatar: require('@/assets/images/avatar-01.png'),
}
},
methods: {
selectAvatar(){
this.selectedAvatar = this.avatar.src
console.log('Avatar selected')
}
}
}
谢谢
解决方案
问题出在您尝试使用“this.avatar”但它不存在的 selectAvatar 方法中。您的 for 循环中的头像不会传递给您的脚本。你应该这样做:
<v-img
...
@click="selectAvatar(i)"
></v-img>
在你的脚本中:
methods: {
selectAvatar(i){
this.selectedAvatar = this.avatars[i].src
console.log('Avatar selected')
}
}
推荐阅读
- java - Liquibase 似乎对数据库运行了两次变更集(或者 H2 数据库没有被清理)
- r - 关于在 R 中读取文件和使用 tryCatch()
- r - 试图理解这个管道操作在 r 中的输出
- angular - Angular路由器获取与子树匹配的URL
- sql - sql regexp_substr 获取连字符前后的字符串
- linux - 使用 puppet 模块 camptocamp 绑定创建主从 DNS
- sql - SSIS模糊分组总是返回具有不同相似度阈值的相同结果
- javascript - JS - 删除数组中所有字符串开头和结尾的可选/潜在引号
- c++ - 在调用过程中删除 std::function
- unity3d - 多个 SubShader,只有一个在渲染