我失去了所有的希望,因为一切似乎都没有意义.(对我来说)在这个阶段了。我都很好得到一个项目的集合,并做什么需要做的与它。但当fecting一个单一的文件,我得到各种各样的麻烦。一直试图添加/删除。数据()在变量的属性/结尾之间,使用test.vue中的函数和useProfiles TypeScript中的函数......似乎没有任何效果。我要么得到“未定义”、或不能访问属性的对象本身未准备好被调用。
我还深入研究了文档并使用了这些示例,但没有结果...
我有三个文件:
useProfile.ts
import { ref } from 'vue'
import { useUserSession } from "/@src/stores/userSession";
import { Profile } from "/@src/types/profile";
import {
getFirestore,
onSnapshot,
doc,
} from "firebase/firestore";
const db = getFirestore();
const userSession = useUserSession();
const uid = userSession.uid
export const profile = ref<Profile>();
export const getProfile = async (id) => {
const unsub = onSnapshot(doc(db, "profiles", id), (profile) => {
console.log("Profile Retrieved Successfully : ", profile.id, " => ", profile.data());
profile.value = profile
});
}
getProfile(uid);
profile.ts
export type Profile = {
images: {
avatar: string;
},
personal: {
nameFirst: string;
nameLast: string;
},
professional : {
cluster: string;
},
}
test.vue
<script setup lang="ts">
import { useViaPlaceholderError } from '/@src/composable/useViaPlaceholderError'
import { profile } from "/@src/composable/useProfiles";
</script>
<template>
<div class="column is-one-fifth" >
<img
class="project-avatar"
:src="profile.images.picture"
alt=""
@error.once="(event) => useViaPlaceholderError(event, '150x150')"
/>
<h3>{{ profile.personal.nameFirst }} {{ profile.personal.nameLast }}</h3>
<p>{{ profile.professional.cluster }}</p>
<progress class="progress is-primary is-tiny" value="31" max="100">
31%
</progress>
</div>
</template>
1条答案
按热度按时间pb3skfrl1#
即使在远离使用多个文件并使我的生活(在未来)更容易,并直接将所有内容转储到一个非常简单的vue文件/组件中之后,我仍然无法定义“myProfile”属性...