"this" равно "undefined" в запросе apollo (vue + nuxt) - PullRequest
0 голосов
/ 20 июня 2020

Я использую GraphQL (Symfony + API Platform) с Vue Apollo и Nuxt.

У меня есть страница с подробными сведениями о проблеме, и я хочу загрузить конкретную c проблему, но я всегда получаю Cannot read property 'issueId' of undefined, потому что this равно undefined. Это соответствующая часть сценария моей страницы

<script>
import gql from 'graphql-tag'

export default {
  data() {
    return {
      issueId: null
    }
  },
  created() {
    this.issueId = this.$route.params.id
  },
  apollo: {
    issue: {
      query: gql`
        query($issueId: ID!) {
          issue(id: $issueId) {
            id
            description
          }
        }
      `,
      variables: {
        issueId: this.issueId
      }
    }
  }
}
</script>

Когда я устанавливаю issueId на issues/3, он работает

variables: {
    issueId: 'issues/3'
}

Ответы [ 2 ]

0 голосов
/ 05 августа 2020

Я нашел решение

Как описано здесь , если просто нужно превратить

variables: {
  issueId: this.issueId
}

в

variables() {
  return {
    issueId: this.issueId
  }
}

Но я не Не понимаю разницы

0 голосов
/ 20 июня 2020

Используйте console.log() в created для проверки значений ...

... вероятно (не работает с vue в течение многих лет) должен быть $route.params.id один, без this. ..

... вы можете использовать это значение непосредственно в variables

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...