我使用React Admin和ra-data-graphQl,当我在UserEdit组件中更新某些东西时,所有工作都很完美,但是,当我需要处理来自API的错误消息时,我不知道在哪里捕获它。
这是我的更新查询:case 'UPDATE': {
const updateParams = { ...params };
return {
query: gql`mutation updateUser($id: ID!, $data: UpdateUser!) {
data: updateUser(id: $id,input:$data) {
${buildFieldsGraphQL(updateFields)}
}
}`,
variables: {
...updateParams,
id: updateParams.data.uuid,
data: {
...updateParams.data,
},
},
parseResponse: (response) => {
console.log('tr response: ', response);
},
};
}
当API返回一个错误时,它永远不会到达console.log.
我在这里搜索选项列表(https://github.com/marmelab/react-admin/tree/master/packages/ra-data-graphql#options)搜索类似"parseerror"的东西,但我没有找到类似的东西。
我需要捕获错误并在UserEdit表单中显示一条消息。
阅读我在这篇文章中分享的链接,它是这样说的:
但是必须返回一个与ApolloClient查询方法的选项匹配的对象,并附带一个parserresponse函数。
我明白我应该去到单词"查询"并检查是否有类似"parserError"的内容,但链接已断开:
https://www.apollographql.com/docs/react/reference/index.html ApolloClient.query
帮忙吗?
好了,这就简单多了。通过添加onFailure函数,我可以处理这个错误。