Vue один компонент файла: импортированный модуль js не определен в методе - PullRequest
0 голосов
/ 27 сентября 2019

У меня есть what.gql.js:

import gql from 'graphql-tag';

const GET_WHATEVER = gql `
    query getWhatever ($id: ID!){
        ...
    }
`;

export default {
    GET_WHATEVER 
}

И мне нравится использовать его в моем компоненте vue:

  1. Для запроса gql (через vue-apollo) <- gql определен </li>
  2. В одном из моих методов <- gql не определен </li>

компонент Vue:

<template>
...
</template>

<script>
import gql from "./whatever.gql.js"

export default {
    ...
    // WORKING
    apollo:{
        whatever: {
            query: gql.GET_WHATEVER, // gql is known
            variables(){
                return {
                    id: this.id
                }
            }
        } 
    },
    // NOT WORKING
    methods: {
        doStuff() {
            let query_foo = gql.GET_WHATEVER; // gql is undefined?
            // also not working:
            let query_bar = this.gql.GET_WHATEVER; // gql is undefined?
        }
    }
}
</script>

Я знаю, что это можно исправить с помощью:определение gql в моей функции данных ...

data () {
    return {
        'gql': gql, 
        ...
    };
},

.. но мне нравится понимать, что здесь происходит.

Почему gql не определен в методе doStuff?

...