Недостающие поля в полезной нагрузке мутации graphql - PullRequest
3 голосов
/ 11 октября 2019

Я новичок в graphql. Мне нужно выполнить мутацию с помощью Relay Modern в приложении React. Согласно документации, мутация полезной нагрузки может отличаться от успешной реакции на ошибку. Все идет хорошо с ответом об успешном выполнении, но с ответом об ошибке я получаю в консоли это предупреждение:

Предупреждение: RelayResponseNormalizer: Полезная нагрузка не содержит значения для поля objectId: objectId. Убедитесь, что вы выполняете синтаксический анализ с тем же запросом, который использовался для извлечения полезной нагрузки.

, поскольку ответ об ошибке не содержит поля objectId. Помимо этого сценария ведут себя правильно. Вот несколько примеров из документов. Пример мутации:

mutation{
    createObject(name: 'john') {
        objectId
        error
    }
}

успешный ответ:

{
    "data": {
        "createObject": {
            "objectId": "123456",
            "error": null
        }
    }
}

и ответ об ошибке:

{
    "data": {
        "createObject": {
            "error": "[Name should not be Empty]"
        }
    }
}

Этокод в компоненте реакции:

const mutation = graphql`
    mutation ComponentCreateObjectMutation($name: String) {
        createObject(name: $name) {
            objectId
            error
        }
    }
`;

commitMutation(
    environment,
    {
        mutation,
        variables,
        onCompleted: (response, errors) => {

            /* error is in response.error */
        },
        onError: (err) => {...}
    }
);

, и это содержание schema.graphql:

type ObjectResponse {
    objectId: ID,
    error: String
}

type Mutation {
    createObject(name: String): ObjectResponse
}

Каков наилучший подход для решения этой проблемы? Заранее спасибо за помощь!

...