Я новичок в 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
}
Каков наилучший подход для решения этой проблемы? Заранее спасибо за помощь!