Получение ошибки при выборке списка graphql

#javascript #reactjs #graphql #fetch

#javascript #reactjs #graphql #выборка

Вопрос:

Я продолжаю получать ту же ошибку при попытке получить список с помощью graphql в приложении react.

Мой следующий запрос:

 const query = `{
  getConstructionNumberListing(filter: "{"subProject__id": "36"}") {
    edges {
      node {
        id,
        constructionNumber,
        indicativePrice,
        definitivePrice,
        isDefinitive,
        housingType {
          ... on object_HousingType {
            id,
            description
          }
        }
      }
    },
    totalCount
  }
}`

const url = constants.api.url;
  const body = JSON.stringify({
    query: query,
  })
 
  return new Promise((resolve) => {

    fetch(url, {
      method: 'POST',
      headers: new Headers(),
      body: body
    })

      // Parse the response
      .then(res => res.json())

      // Trigger the callback if no errors were thrown
      .then(res => {
        console.log('res', res)
        resolve(res);
      })
      .catch(er => resolve(er))
  })
  

выдает мне эту ошибку при выборке в react:

 {message: "Syntax Error: Expected :, found String ": "", extensions: {category: "graphql"}, locations: [{line: 2, column: 57}]}
  

Кто может помочь мне решить эту проблему? другой запрос, подобный следующему, работает нормально

 {
  getProjectListing(after: 0) {
      edges {
          node {
              id
              projectName
          }
      }
  }
}
  

Также хочу отметить, что запрос отлично работает в Postman, синтаксис взят из документов:

https://github.com/pimcore/data-hub/blob/master/doc/10_GraphQL/04_Query/10_Filtering.md

Комментарии:

1. ‘Content-Type’: ‘application / json’ .. также вы должны использовать ‘переменные запроса’ для передачи параметров (см. Документы), протестировать на игровой площадке (используя переменные), затем воссоздать в коде, сравнить необработанные детали запроса при возникновении проблем

Ответ №1:

Ваше filter значение не является допустимым синтаксисом, не уверен, что вы пытаетесь сделать, но это может выглядеть так:

 {
  getConstructionNumberListing(filter: "{ subProject__id: 36 }") {
    ...
  }
}
  

Комментарии:

1. Спасибо за ваш ответ. Если я попытаюсь это сделать, то получу следующую ошибку: res Object data: Object getConstructionNumberListing: null Ошибки прототипа объекта: Массив (1) 0 Расширения объекта: {категория: «pimcore.datahub»} местоположения: [{строка: 2, столбец: 3}] (1) сообщение: «невозможнодля декодирования фильтра» путь: [«getConstructionNumberListing»] (1) Прототип объекта

2. Синтаксис взят из документов: github.com/pimcore/data-hub/blob/master/doc/10_GraphQL/04_Query /…

Ответ №2:

Вы можете использовать библиотеку, подобную apollo client, для отправки запросов graphql в react:

https://www.apollographql.com/docs/react/data/queries/

Комментарии:

1. Спасибо за ваш ответ, но я бы хотел просто использовать выборку. Должно быть возможно