אובייקט בcouputed שאינו מתעדכן (vue)
-
המקרה הוא שאני מנסה לשלב את הספריה של uppy בvue
יש שם computed כזה
computed: { uppy2: () => new Uppy({ id: 'uppy2', autoProceed: false, debug: true }).use(Tus, { endpoint: 'https://tusd.tusdemo.net/files/', }) }
אצלי הנתון שאמור להיות ערך ה-endpoint, מתקבל ממקור חיצוני, כך שכשהדף נטען הוא עדיין איננו (מה שקורה שכשהדף נטען הערך שיהיה שם אינו ערך תקין). איך אני מרענן את המידע אליו אח"כ שכשרץ העלאת הקובץ, כבר יהיה מוגדר ערך תקין?
(הערך מגיע מהthis.$store.getters. ניסיתי להגדיר אותו ככה
endpoint: (this) ? this.$store.getters.domain +"file/post" : "http://localhost:3000/file/post",
, אבל הוא לא מתרענן)
-
@chagold כתב באובייקט בcouputed שאינו מתעדכן (vue):
@חוקר תוכל להדגים (בדוגמא דלעיל)?
האמת שכאן @yossiz צודק והנוסח הוא לשנות לפונקציה שאינה חץ כי מדובר בפונקציה בתוך אובייקט, ככה שאין לך היכן להגדיר משתנה.
ולכן יותר נכון הוא לכתוב את הקוד כךcomputed: { uppy2() { return new Uppy({ id: 'uppy2', autoProceed: false, debug: true }).use(Tus, { endpoint: (this) ? `${this.$store.getters.domain}file/post` : 'http://localhost:3000/file/post', }) }, },
__
ערכתי הוספתי return