У меня есть этот фрагмент:
// product-info.js
module.exports = gql`fragment productInfo on Product {
id
name
model
color
quantity
}`
И у меня такой запрос:
// get-products.js
const productInfo = require('./fragments/product-info')
module.exports = gql`query getProducts {
quote @client {
items { ...productInfo }
}
}`
Это не работает, потому что ...productInfo здесь простой литерал.
Даже строковая интерполяция не работает ${...productInfo}.
(-_-) Я видел это, но я просто хочу узнать, возможен ли другой способ (с шаблоном gql). Я всегда предпочитаю работать с файлами .js, когда это возможно.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы должны включить строку после запроса, я не знаю, будет ли он работать с тегом gql, зависит от настроек вашего сборщика:
module.exports = gql`query getProducts {
quote @client {
items { ...productInfo }
}
}
fragment productInfo on Product {
id
name
model
color
quantity
}`
Другие параметры включены в средство форматирования строк:
const productInfo = require('./fragments/product-info')
module.exports = gql`query getProducts {
quote @client {
items { ...productInfo }
}
}
${productInfo}`
Хорошо, первое решение должно работать, но я хочу поделиться фрагментом между запросами, второе решение, если оно работает, сделает это. Но в конце концов я остановился на использовании файлов .gql и загрузчика graphql-tag/loader. Спасибо.
вам не нужно хранить его как модули - файлы
.graphqlмогут импортировать фрагменты из других файлов.graphql- вы не делали свой недавний домашнее задание;)