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(); -
כהמשך למטרה שלי באשכול הזה (שנפתרה תודות ל @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 -
@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) });
שלום! נראה שהשיחה הזו מעניינת אותך, אבל עדיין אין לך חשבון.
נמאס לכם לגלול בין אותם הפוסטים בכל ביקור? כשנרשמים לחשבון, תמיד תחזרו בדיוק למקום שבו הייתם קודם, ותוכלו לבחור לקבל התראות על תגובות חדשות (בין אם במייל, ובין אם בהתראת פוש). תוכלו גם לשמור סימניות ולפרגן ב-upvote לפוסטים כדי להביע הערכה לחברי קהילה אחרים.
בעזרת התרומה שלך, הפוסט הזה יכול להיות אפילו טוב יותר 💗
הרשמה התחברות