apollo-client: как вставить фрагмент в шаблон gql? - PullRequest
0 голосов
/ 17 сентября 2018

У меня есть этот фрагмент:

// 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}.

1 Ответ

0 голосов
/ 17 сентября 2018

Вы должны включить строку после запроса, я не знаю, будет ли он работать с тегом 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}`
...