У меня есть what.gql.js:
import gql from 'graphql-tag';
const GET_WHATEVER = gql `
query getWhatever ($id: ID!){
...
}
`;
export default {
GET_WHATEVER
}
И мне нравится использовать его в моем компоненте vue:
- Для запроса gql (через vue-apollo) <- gql определен </li>
- В одном из моих методов <- 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?