处理useMutation钩子中错误的最佳方法是啥[重复]
Posted
技术标签:
【中文标题】处理useMutation钩子中错误的最佳方法是啥[重复]【英文标题】:what is the best way to handle error in useMutation hook [duplicate]处理useMutation钩子中错误的最佳方法是什么[重复] 【发布时间】:2020-08-30 15:17:55 【问题描述】:我正在使用 graphql 来完成我的工作,在我的一个用例中,我正在使用 useMutation hook
进行突变,例如添加、插入或删除。
所以这里我有输入字段和按钮,所以点击我想将数据保存在工作正常的数据库中,
我的主要观点是处理react-apollo-graphql
in useMutation 中的错误的最佳方法是什么
目前我正在使用 Promise 处理错误,但我知道这不是最好的方法
我正在做的是
const [createDep, loading,error] = useMutation(ADD_DEPARTMENTS, // here this error I want to do something here ton handle error and loading
update(_,result)
console.log(result)
)
const submitDepartment = (e) =>
let dept_name = e.department
console.log(dept_name)
createDep(
variables: dept_name ,
).catch((res) => // I do not think This is the right way to do
const errors = res.graphQLErrors.map((error) =>
console.log(error.message);
);
);
;
【问题讨论】:
您可以捕获错误或提供onError
回调。有关详细信息,请参阅链接的帖子。
【参考方案1】:
我只是将它包装在一个 try/catch 范围内:
const [createDep] = useMutation(ADD_DEPARTMENTS,
update(_,result)
console.log(result)
)
const submitDepartment = async (e) =>
let dept_name = e.department
try
await createDep(variables: dept_name)
catch (err)
// handle error here
;
【讨论】:
hey react apollo graphql 给出了这个error
对象,那么这个有什么用呢?
我编辑了答案,我不使用突变的 return loading, error 但通常是返回 promise 并包装整个 try/catch。以上是关于处理useMutation钩子中错误的最佳方法是啥[重复]的主要内容,如果未能解决你的问题,请参考以下文章
使用 React 钩子处理 graphQL 突变错误(useMutation + Apollo-client)
错误:“突变”类型上的未知字段“讨论”。使用 Relay 和 React `useMutation` 钩子
如何在 withFormik() 形式中使用 useMutation 钩子
如何重置 Apollo 客户端的 useMutation 钩子