使用 useMutation 可能出现未处理的承诺拒绝警告
Posted
技术标签:
【中文标题】使用 useMutation 可能出现未处理的承诺拒绝警告【英文标题】:Possible unhandled promise rejection warning with useMutation 【发布时间】:2019-12-17 23:35:33 【问题描述】:当我将 useMutation
与 react native 一起使用时,我收到了一个未处理的承诺拒绝错误。这是产生问题的代码:
const [createUser, error, loading ] = useMutation(CREATE_USER_MUTATION);
每当我的 graphql 服务器向客户端返回错误时,我都会收到未处理的承诺拒绝错误(下面的屏幕截图)。我可以通过添加这样的错误处理程序来使其消失,但这似乎是一种黑客行为。有什么想法吗?我做错了什么还是阿波罗人应该解决这个问题?
const [createUser, error, loading ] = useMutation(CREATE_USER_MUTATION,
onError: () =>
);
【问题讨论】:
看起来这个答案对发生的事情有详细的解释:***.com/a/59472340/23427。 【参考方案1】:const [createUser, data, loading ] = useMutation(CREATE_USER_MUTATION,
onError: (err) =>
setError(err);
);
有了这个,我们可以通过加载和正确的错误处理来访问数据。
【讨论】:
【参考方案2】:您的 createUser
突变是一个承诺,您应该在 try catch
块内或在 apollo-link-error onError
方法内的上层范围内处理错误。
【讨论】:
以上是关于使用 useMutation 可能出现未处理的承诺拒绝警告的主要内容,如果未能解决你的问题,请参考以下文章
如何修复可能的未处理承诺拒绝(id:0)?以及如何修复无法读取未定义的属性“导航”?