„Undefinierter ‚blogItems'-Fehler' beim Versuch, Aktualisierungen an Vue-Datenvariablen zu übertragen
P粉262073176
P粉262073176 2023-09-15 23:28:14
0
1
465

Ich versuche, alle Beiträge von Firebase abzurufen und einem Array hinzuzufügen, erhalte jedoch die folgende Fehlermeldung:

Uncaught (in promise) TypeError: Cannot read property 'blogItems' of undefined

Hier ist das Skript:

export default { data(){ return{ blogItems: [] } }, mounted(){ this.getPosts(); }, methods:{ getPosts(){ database.collection('blog').doc('yP6aYXvisFbTsqtQ3MEfuyz6xYE3').collection('posts').get().then(snapshot =>{ const posts = snapshot.docs.map(doc => doc.data()) posts.forEach(function(post){ this.blogItems.push(post.content) }) }) }, } }

P粉262073176
P粉262073176

Antworte allen (1)
P粉835428659

在你的情况下,将this.blogItems中的this更改为posts

你有两种解决方法

  1. this存储到一个变量中并使用它

    getPosts(){ let tis = this; database.collection('blog').doc('yP6aYXvisFbTsqtQ3MEfuyz6xYE3').collection('posts').get().then(snapshot =>{ const posts = snapshot.docs.map(doc => doc.data()) posts.forEach(function(post){ tis.blogItems.push(post.content) }) }) },

  1. 使用箭头函数

    getPosts(){ database.collection('blog').doc('yP6aYXvisFbTsqtQ3MEfuyz6xYE3').collection('posts').get().then(snapshot =>{ const posts = snapshot.docs.map(doc => doc.data()) posts.forEach((post) => { this.blogItems.push(post.content) }) }) },
    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage
    Über uns Haftungsausschluss Sitemap
    Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!