Я пытаюсь получить данные из одного типа коллекции моего бэкэнда Strapi в проект Vue.js с помощью Apollo. Он хорошо работает с одним псевдонимом, но у меня проблемы с его работой с несколькими псевдонимами.
Я получаю свои данные из кампаний коллекционного типа, которые имеют логическое поле архива. Я хочу создать массив кампаний, содержащий все кампании, которые не были заархивированы (archive = false), а также массив архива, содержащий все заархивированные (archive = true).
Это мой код:
import gql from "graphql-tag";
export default {
name: "Campaigns",
data() {
return {
campaigns: [],
archive: []
};
},
apollo: {
campaigns: gql`
query getCampaigns {
campaigns: campaigns(where: { archive: "false" }, sort: "order:DESC") {
name
url
}
archive: campaigns(where: { archive: "true" }, sort: "order:DESC") {
name
url
}
}
`
}
Запрос возвращает массив кампаний, но массив архива по-прежнему пуст.
Я пробовал переключаться (сначала поместил псевдоним архива, переключил логические значения, чтобы убедиться, что я могу вообще получить доступ к данным заархивированных кампаний и т. Д.). Проблема, по-видимому, связана с псевдонимом архива.
Когда я использую тот же запрос с площадкой Strapi GraphQL, я получаю желаемый результат:
{
campaigns: campaigns(where: { archive: "false" }, sort: "order:DESC") {
name
}
archive: campaigns(where: { archive: "true" }, sort: "order:DESC") {
name
}
}
... возвращается ...
{
"data": {
"campaigns": [
{
"name": "2020"
},
{
"name": "2019"
},
{
"name": "2018"
},
{
"name": "2017"
}
],
"archive": [
{
"name": "2016"
},
{
"name": "2015"
}
]
}
}
Как я могу заставить запрос работать в Vue.js с Apollo?