透過 VueJS 上的 pinia,我使用一個商店來儲存我的許可證,並且許可證有一個引用項目的編號。包含資訊的項目清單位於其他商店。 所以我在許可證儲存中建立 getter 來獲取專案的資訊(名稱、企業...)。
但是,當頁面載入時,getters 的值不會出現,當我進入 Vuejs Web 瀏覽器的擴充功能查看我的商店時,這些值就會出現。而且我不明白如何在模板中使用吸氣劑...我嘗試過但沒有結果...
我製作了一個影片來演示我的問題: https://www.youtube.com/watch?v=Er4xcQ-Mq2Y
感謝您的幫忙!
我的瀏覽頁面:
<h1>Licences actives (de type "DEV")</h1> <table> <tr> <th>Numero/Clé</th> <th>Fin d'activation</th> <th>type</th> <th>Entreprise</th> <th>N° d'Affaire<br />(Projet)</th> <th>Projet</th> <th>Responsable</th> <th>Version</th> <th>Version Soft</th> <th>Durée restante <br />(jours)</th> </tr> <tr v-for="article in currentList" :key="article.numero"> <td style="color: red">{{ article.numero }}</td> <td>{{ Date_formate(new Date(article.fin_activation)) }}</td> <td>{{ article.type }}</td> <td style="color: red">{{ article.entreprise }}</td> <td>{{ article.affaire }}</td> <td>{{ article.name }}</td> <td>{{ article.responsable }}</td> <td>{{ article.version }}</td> <td>{{ article.version_soft }}</td> <td> {{ Math.round((new Date(article.fin_activation) - Date.now()) / 86400000) }} </td> </tr> <br /> </table> </template> <script setup> import { computed, onMounted, ref } from "@vue/runtime-core"; import { useListLicences } from "../stores/licence"; import { Date_formate } from "../plugin/functions"; const useListLicences2 = useListLicences(); const currentList = computed(() => { return useListLicences2.$state.list; </script>
src/stores 中的授權儲存:
import { defineStore } from "pinia"; import { useListProjets } from "./projets"; const entreprises = useListEntreprises(); const projets = useListProjets(); export const useListLicences = defineStore({ id: "licences", state: () => ({ list: [], }), persist: true, getters: { getList: (state) => state.list, getName: (state) => //pour afficher Projet dans le tableau state.list.map((licence) => { projets.list.map((projet) => { if (licence.projet_affaire == projet.affaire) { return licence.name = projet.projetNom; } }); }), getResponsable: (state) => //pour afficher Responsable state.list.map((licence) => { projets.list.map((projet) => { if (licence.projet_affaire == projet.affaire) { return licence.responsable = projet.userPseudo; } }); }), getEntreprise: (state) => //pour afficher Entreprise state.list.map((licence) => { projets.list.map((projet) => { if (licence.projet_affaire == projet.affaire) { return licence.entreprise = projet.entrepriseNom; } }); }), getAffaire: (state) => //pour afficher le Num d'affaire state.list.map((licence) => { projets.list.map((projet) => { if (licence.projet_affaire == projet.affaire) { return licence.affaire = projet.affaire; } }); }), getID_Entreprise: (state) => state.list.map((licence) => { entreprises.list.map((entreprise) => { if (licence.entreprise == entreprise.entreprise_nom) { return licence.ID_entreprise = entreprise.id; } }); }), getContacts: (state) => state.list.map((licence) => { projets.list.map((projet) => { if (licence.projet_affaire == projet.affaire) { return licence.contact1 = projet.email1; } }); }), }, });
使用這個:
$state
是一個展開對象,因此不會有回應