Вызов мутации AWS Amplify возвращает «Ошибка проверки типа UnknownArgument: неизвестный аргумент поля»

При запуске этого запроса в консоль Amplify это работает хорошо, поэтому я предполагаю, что схема и база данных настроены правильно:

mutation CreateUser {
  createUser(input: {
    name: "Nader Dabit"
    email: "[email protected]"
    image: "someimagepath"
    mobile: 122122
  }) {
    id
    name
    email
    image
    mobile
  }
}

В моем приложении RN я настроил AWS Amplify следующим образом (но я не уверен, что это так, но процесс входа / регистрации и т. д., Похоже, работает нормально):

Amplify.configure({Auth: apiKeyStore, aws_appsync_graphqlEndpoint: "https://xxx.appsync-api.ap-xxx-1.amazonaws.com/graphql",
        aws_appsync_region: "ap-xxx-1", aws_appsync_authenticationType: "API_KEY", aws_appsync_apiKey: "da2-xxxx"});

Поэтому у меня есть следующие коды для вызова метода мутация:

const CreateUser = `mutation CreateUser(
    $name: String!,
    $email: String!,
    $mobile: Int!,
    $image: String!
  ) {
        createUser(name:$name, email:$email, mobile:$mobile, image:$image)
        {
            id
            name
            email
            mobile
            image
        }
}`;

// inside a method
try 
{
   const newUser = await API.graphql(graphqlOperation(CreateUser, {name: name, email: email, mobile: mobile, image: image}));
   console.info('newUserIncoming: ', newUser);
}
catch (err) 
{
   console.info('error while create user: ', err);
}

Но приведенный выше вызов всегда превращается в error / catch со следующими объектами ошибок (как видно с React Native Debugger):

Вызов мутации AWS Amplify возвращает «Ошибка проверки типа UnknownArgument: неизвестный аргумент поля»

Умерло ли Create-React-App?
Умерло ли Create-React-App?
В этом документальном фильме React.dev мы исследуем, мертв ли Create React App (CRA) и какое будущее ждет этот популярный фреймворк React.
Освоение React Native: Пошаговое руководство для начинающих
Освоение React Native: Пошаговое руководство для начинающих
React Native - это популярный фреймворк с открытым исходным кодом, используемый для разработки мобильных приложений. Он был разработан компанией...
В чем разница между react native и react ?
В чем разница между react native и react ?
React и React Native - два популярных фреймворка для создания пользовательских интерфейсов, но они предназначены для разных платформ. React - это...
От React к React Native: Руководство для начинающих по разработке мобильных приложений с использованием React
От React к React Native: Руководство для начинающих по разработке мобильных приложений с использованием React
Если вы уже умеете работать с React, создание мобильных приложений для iOS и Android - это новое приключение, в котором вы сможете применить свои...
Хуки React: что это такое и как их использовать
Хуки React: что это такое и как их использовать
Хуки React - это мощная функция библиотеки React, которая позволяет разработчикам использовать состояние и другие возможности React без написания...
1
0
2 409
1

Ответы 1

Я вижу, вероятно, приведенный выше контекст GraphQL немного устарел. Заглянув в текущую документацию, размещенную на https://aws-amplify.github.io/docs/js/react, я обнаружил, что она требует некоторой корректировки. После этого я смог вернуть положительный результат и сохранить значение в БД.

Ниже приведен мой последний формат запроса (если он помогает кому-то вроде меня, обратите внимание, что использование запятой теперь удалено, а также добавлено с новым тегом Вход):

const CreateUser = `mutation CreateUser(
    $name: String!
    $email: String!
    $mobile: Int!
    $image: String!
  ) {
        createUser(input:{name:$name email:$email mobile:$mobile image:$image})
        {
            id
            name
            email
            mobile
            image
        }
}`;

Остальные остались для меня такими же.

Другие вопросы по теме