【发布时间】:2020-05-19 06:02:53
【问题描述】:
我正在尝试在单击保存按钮时更改用户的个人资料图片,我的模板如下所示:
<q-file
v-model="file"
label="Pick one file"
class="text-center"
use-chips
accept=".jpg, image/*"
style="width: 200px"
/>
<q-btn flat class="text-primary" @click="saveUsersProfile(file)">
Save
</q-btn>
在我的脚本部分:
<script>
import { mapActions } from "vuex";
export default {
name: "profile",
data: () => ({
file: null
}),
computed: {
...mapActions("store", ["saveUsersProfile"])
},
Store.js
//Let users change Profile Picture
saveUsersProfile({}, payload) {
// Get the File
const file = payload[0];
const extension = file.name.split(".").pop();
const uploadDate = new Date();
const fileName = `${firebaseAuth.currentUser.uid}-${uploadDate.toDateString()}.${extension}`;
firebaseStorage
.ref(`users/profile/${fileName}`)
.put(file)
.then(res => {
console.log(res);
})
.catch(err => {
console.log(err);
});
控制台错误:
Error in v-on handler: "TypeError: Cannot read property 'name' of undefined"
vue.runtime.esm.js?2b0e:1888 TypeError: Cannot read property 'name' of undefined
at Store.saveUsersProfile (store.js?07a4:122)
我不知道为什么它无法获取文件扩展名。
【问题讨论】:
标签: vue.js firebase-storage vuex quasar-framework