我正在创建一个输入表单,该表单使用以下方法验证帐号onChange react-hook-form
useEffect(() => {
if (account_number.length >= 6) {
verifyAccountNumber();
}
return () => source.cancel('Request canceled!');
}, [account_number, bank_code, verifyAccountNumber]);
该verifyAccountNumber
函数在account_number
和bank_code
状态更改时运行。
这是实际功能
const verifyAccountNumber = useCallback(async () => {
setAccountLoading(true);
setAccountError({ status: false, serverError: false });
try {
const account = await restAPI.get(
`/misc/verify-account/${account_number}/${bank_code}`,
{ cancelToken: token }
);
setAccount(account.data.data.data.account_name);
} catch (err) {
console.log(err);
if (!axios.isCancel(err)) {
setAccountError({
status: true,
serverError: err.response.data.serverError,
});
}
}
setAccountLoading(false);
}, [account_number, bank_code]);
有没有一种方法可以防止try catch块将已取消的请求捕获为错误?因为它弄乱了我的UI / UX
如果要防止捕获取消错误,则必须重新抛出该错误。
if (axios.isCancel(err)) {
throw err
} else {
setAccountError(...)
}
(回答评论,以记录该问题的解决)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句