1
使用React-Apollo Use处理错误
我一直在努力解决这个问题,但没有找到一个强有力的答案。我正在尝试使用useMutation挂钩执行登录突变。 TLDR;我想知道传入的onError选项与useMutation给我的错误之间到底有什么区别 这是我的代码段 const [login, { data, loading, error }] = useMutation(LOGIN_QUERY, { variables: { email, password }, onError(err) { console.log(err); }, }); 在服务器端,我有一个用于登录的预设/硬编码电子邮件,并且我没有使用Apollo或任何其他客户端。在此登录突变的解析器中,如果使用的电子邮件不相同,我只会抛出一个错误 throw new Error('Invalid Email'); 现在,我想在客户端上处理此错误(反应)。但是我担心的是,如果我使用useMutation钩子返回的“错误”并尝试以这种方式显示错误 render() { ... {error && <div> Error occured </div>} ... } 该错误已在UI中更新,但随后React迅速向我显示了一个屏幕,显示未处理的拒绝(错误):Graphql错误:My-custom-error-message 但是,如果我使用onError传递给useMutate函数的选项,那么它不会向我显示此屏幕,并且我可以对错误进行任何处理。 我想知道究竟是由useMutation给我?为什么做出反应告诉我,错误画面时onError的选项和错误通过的onError之间的差异不使用。 谢谢!