Реагировать на запрос с подключением - PullRequest
0 голосов
/ 05 апреля 2020

В настоящее время я создаю приложение React с помощью Amplify Cli.

The schema.graphql

type Ticket @auth(rules: [{ allow: owner, operations: [create, update, delete] }]) @model @searchable  {
  id: ID!
  location: String
  city: String
  comment: String
  owner: String
  startDate: String
  endDate: String
  status: String
  request: [Request] @connection(keyName: "byRequest", fields: ["id"])
}

type Request @auth(rules: [{ allow: owner, operations: [create, update, delete] }]) @model @searchable @key(name: "byRequest", fields: ["ticketID"]) {
  id: ID!
  ticketID: ID!
  requester: String
}

Сгенерированный код от ampify для соответствующего запроса searchTickets

export const searchTickets = /* GraphQL */ `
  query SearchTickets(
    $filter: SearchableTicketFilterInput
    $sort: SearchableTicketSortInput
    $limit: Int
    $nextToken: String
  ) {
    searchTickets(
      filter: $filter
      sort: $sort
      limit: $limit
      nextToken: $nextToken
    ) {
      items {
        id
        location
        city
        comment
        owner
        startDate
        endDate
        status
        request {
          nextToken 
        }
      }
      nextToken
      total
    }
  }
`;

Когда я пытаюсь сделать запрос данные в Appsyn c, результат включает в себя массив запрашивающего, как и ожидалось.

query {
  searchTickets {
     items{
      location
      owner
      request {
        items{
          requester
        } 
      }
    }
  }
}

Теперь я борюсь с кодом React, потому что массив запрашивающего не включен. Остальная часть кода работает нормально, и я получаю все данные из Ticket (местоположение, город ...), но не данные из типа «Запрос».

Код реагирующего запроса:

 await API.graphql(
        graphqlOperation(queries.searchTickets, {
          limit, // limit is set in a const
          sort: {
            field: 'startDate',
            direction: 'asc'
          },
          filter: {
            location: {
              eq: location
            },
            city: {
              eq: city
            }
          }
        })
      )
        .then(payload => {
          const data = payload.data.searchTickets.items;
          setTickets(tickets => tickets.concat(data)); 
        })
        .catch(err => {
          console.log('error: ', err);
        });

enter image description here

Есть идеи, почему массив «Запрос» пуст или как я могу получить доступ к данным типа «Запрос» через запрос searchTickets?

THX!

PS: Я рад предоставить больше, если код / ​​информация, если это необходимо.

1 Ответ

1 голос
/ 05 апреля 2020

У вас есть файл .graphqlconfig.yml? Пожалуйста, проверьте глубину для Усиления.

projects:
  <YOUR_PROJECT_NAME>:
    extensions:
      amplify:
        maxDepth: <CHANGE_THIS>
...