Как я могу вернуть массив из asyncData в nuxt из FireStore для SSR? - PullRequest
0 голосов
/ 08 мая 2019

Я пытаюсь заставить мое приложение отображать мои данные в массиве из Firestore в SSR с использованием asyncData. Моя функция вне asyncData работает нормально, но я НЕ могу заставить ее работать внутри.

Я пробовал очень много способов получения массива из asyncData для рендеринга. Я пытаюсь вернуть данные в «аддоны», чтобы они заполняли форму так же, как мой метод.

Вот мой метод работы

async getAddons() {
      var addonsRef = db
        .collection('addons')
        .where('publish', '==', true)
        .orderBy('timeUpdated', 'desc');
      await addonsRef.get().then(snapshot => {
        snapshot.forEach(doc => {
          const addons = {
            ...doc.data(),
            id: doc.id
          };
          return this.addons.push(addons);
        });
      });
    },

А вот код, который я сейчас пробую внутри asyncData

async asyncData({ app, error }) {
    const addonsRef = await db
      .collection('addons')
      .where('publish', '==', true)
      .orderBy('timeUpdated', 'desc');
    try {
      await addonsRef.get().then(snapshot => {
        snapshot.forEach(doc => {
          const addons = {
            ...doc.data(),
            id: doc.id
          };
          return app.addons.push(addons);
        });
      });
    } catch (e) {
      // TODO: error handling
      console.error(e);
    }
    return app.addons.push(addons);
  },

Я ожидаю, что код asyncData заполнит массив, чтобы он заполнил мой шаблон так же, как функция getAddons.

Какую простую вещь мне не хватает?

1 Ответ

0 голосов
/ 08 мая 2019

вы должны вернуть словарь из asyncData. Например.

{
 something:  app.addons.push(addons)
}

А затем в шаблоне вы получаете к нему доступ через {{something. }}

...