Запрос AppSync / Amplify с использованием ошибки параметра "" Ошибка проверки типа FieldUndefined: " - PullRequest
0 голосов
/ 02 апреля 2020

В настоящее время у меня есть схема AppSyn c, в которой я создал отдельный запрос в консоли AppSyn c, чтобы сохранить определенный параметр (assetId) и получить список результатов в моей таблице DynamoDB. Я уже тестировал запрос в консоли AppSyn c, и он отлично работает, сейчас у меня просто возникают проблемы с использованием Amplify в приложении React для вызова запроса. Я получаю следующую ошибку при запуске моего приложения:

DisplayCard.js:34 Uncaught (in promise) {data: null, errors: Array(1)}
"Validation error of type FieldUndefined: Field 'getAssetIdRating' in type 'Query' is undefined @ 'getAssetIdRating'"

Я пытался следовать документации согласно сайту Amplify (https://aws-amplify.github.io/docs/js/api), но все еще получаю эту ошибку.

Для справки вот запрос, когда я запускаю его в консоли AppSyn c: (возвращает желаемый результат)

    query getAssetIdRating {
      getRatingsAssetId(assetId:"949142fb-91d2-41bd-8c04-1d42ed8166c9") {
        items {
          id
          assetId
          rating
        }
      }
    }

Решатель, который я использую для этого запроса, следующий: (Я создал отдельный Индекс)

{
    "version" : "2017-02-28",
    "operation" : "Query",
    "index": "assetId-index",
    "query" : {
        ## Provide a query expression. **
        "expression": "assetId = :assetId",
        "expressionValues" : {
            ":assetId" : $util.dynamodb.toDynamoDBJson($ctx.args.assetId)
        }
    }
}

А теперь переходим к моему коду React, это текущий запрос, который я использую в реакции, в src / graphql / query.

    export const getAssetIdRating = /* GraphQL */ `
      query getRatingAssetId($assetId: ID) {
        getAssetIdRating(assetId: $assetId) {
          items {
            id
            assetId
            rating
          }
        }
      }
    `;

И когда я вызываю его, то в моем приложении React:

componentDidMount = async () => {
    this.getRatings();
}

getRatings = async () => {
    let { assetIdRatings } = this.state;
    const result = await API.graphql(graphqlOperation(queries.getAssetIdRating, {assetId: '949142fb-91d2-41bd-8c04-1d42ed8166c9'}));
    console.log(result);
}

Обратите внимание, что когда я вызываю запрос listRatings, он работает нормально, просто не работает с этим запросом. И как примечание, я добавил этот запрос позже вручную через консоль AppSyn c, я не предполагаю, что это должно играть проблему?

В любом случае, любая помощь будет принята с благодарностью! И я могу загрузить больше необходимый код, если требуется! Спасибо за помощь!

1 Ответ

0 голосов
/ 03 апреля 2020

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

Вы можете увидеть ошибку ввода в моем запросе:

getRatingsAssetId(assetId:"949142fb-91d2-41bd-8c04-1d42ed8166c9") {

getAssetIdRating(assetId: $assetId) {

Спасибо хоть за помощь!

...