vueX, ה-store לא מתעדכן בנתונים.
-
כהמשך למטרה שלי באשכול הזה (שנפתרה תודות ל @yossiz )
יצרתי מוטציה (שניגשת לשרת לקבל פרמטרים ומזינה אותם בstate).
כשאני ניגש בשורה הבאה לstate או הgetters, אז הפרמטרים עדיין לא מופיעים ואני מקבל תוצאה כזו -
רק אם אני מדפיס את כל האובייקט של הגטרס, אז מגיע אובייקט שבדפדוף לאיברים שלו רואים את התוצאות.
זה הקוד
import { store } from '@/store/store' async function myDisplay() { await store.commit('get_data_project'); const user = await store.getters.data_project console.log(user) } myDisplay();
-
@chagold אמר בvueX, ה-store לא מתעדכן בנתונים.:
יצרתי מוטציה (שניגשת לשרת
מוטציות אמורים להיות סינכרוניים. לתהליך אסינכרוני תשתמש באקשין.
https://vuex.vuejs.org/guide/mutations.html#mutations-must-be-synchronous -
@yossiz זה עדיין לא עוזר.
לאחר בדיקה זה בגלל שאני משתמש באקשין בfetch וזה סינכרוני.כנראה אני צריך להכניס את הfetch בתוך פונקציית async, רק שזה הורס את ההתייחסות בthis ל-store (וזה שוב פלסטלינה).
הכיוון הזה נכון או שאני צריך לעשות משהו פשוט יותר? -
כך עלתה בידי
באקשין:
const actions = { get_data_project(state){ return fetch(this.getters.domainToFetch+'/index.php',{credentials: 'include'}) .then(response => response.json()) .then( data_project => { return this.state.typesprojects.data_project = data_project; }) } }
והקריאה
import { store } from '@/store/store' store.dispatch('get_data_project') .then( data_project => { console.log(data_project.name_project) });