Vue-apollo не заполняет объект данных - PullRequest
0 голосов
/ 14 мая 2018

Я экспериментирую с использованием vue-apollo с nuxt, реализуя модуль @nuxtjs/apollo.У меня работает GraphQL сервер, работающий на localhost:4000.Я написал следующий код:

<template>
  <div>
    <p v-for = "item in stuff" :key="item.id">item.name</p> 
  </div>

</template>

<script>
import stuff from '~/apollo/queries/stuff'

export default {
  apollo: {
    stuff: {
      query: stuff,
      variables: {
        limit: 10
      }
    }
  },
  data () {
    return {
      stuff: []
    }
  }
}
</script>

stuff.gql:

{
  stuff {
    id
    name
  }
}

client-config:

import { ApolloLink } from 'apollo-link'
import { HttpLink } from 'apollo-link-http'
import { InMemoryCache } from 'apollo-cache-inmemory'

export default (ctx) => {
  const httpLink = new HttpLink({ uri: 'http://localhost:4000' })


  // middleware
  const middlewareLink = new ApolloLink((operation, forward) => {
    const token = process.server ? ctx.req.session : window.__NUXT__.state.session

    operation.setContext({
      headers: { authorization: `Bearer ${token}` }
    })
    return forward(operation)
  })
  const link = middlewareLink.concat(httpLink)
  return {
    link,
    cache: new InMemoryCache()
  }
}

Наблюдательный читатель увидит, что я в основном скопировал код примера из документации.Я ожидал, что объект данных моего vue компонента будет обновлен с использованием первых 10 результатов из моего бэкэнда.Тем не менее, я вижу все в $apolloData объекте, который недоступен из компонента.Также данные не ограничиваются первыми 10 записями.Может ли кто-нибудь указать, что я делаю не так?Потому что я этого не вижу.

Я также пробовал:

apollo: {
  products: {
    query: stuff,
    variables () {
      return {
         limit: 10
      }
    }
  }
}

И со всеми вариациями опции prefetch.

1 Ответ

0 голосов
/ 15 мая 2018

ОК, поэтому сегодня я установил свежую версию начального шаблона nuxt и перенес только самые необходимые компоненты для работы apollo.Сработало сразу.Я понятия не имею, что вызвало ошибку, и из-за того, что у меня уже было установлено дюжина пакетов, мы, вероятно, никогда не узнаем.

...