Javascript 如何处理react查询中的错误';什么是成功的事件?
我使用React查询的Javascript 如何处理react查询中的错误';什么是成功的事件?,javascript,reactjs,indexeddb,react-query,Javascript,Reactjs,Indexeddb,React Query,我使用React查询的usemotation进行了一个api调用。调用完成后,我将数据存储在indexedDB中。此过程在useCommutation的onSuccess参数内完成 在firefox中,这个过程总是失败。因此,我需要抛出一个错误,并让用户知道此浏览器不受支持。但是React查询不再在onSuccess方法中捕获错误。如何解决这个问题?代码如下: //突变 const login:AuthService[“login”]=()=>{ 常量{mutateAsync,isLoadin
usemotation
进行了一个api调用。调用完成后,我将数据存储在indexedDB
中。此过程在useCommutation
的onSuccess
参数内完成
在firefox中,这个过程总是失败。因此,我需要抛出一个错误,并让用户知道此浏览器不受支持。但是React查询不再在onSuccess
方法中捕获错误。如何解决这个问题?代码如下:
//突变
const login:AuthService[“login”]=()=>{
常量{mutateAsync,isLoading,error,reset,isSuccess}=useMutation(
(表单:LoginForm)=>\u登录(表单),
{
onSuccess:async(用户:用户)=>{
wait IndexedDB.saveUser(用户);
},
}
);
返回{
onLogin:(form:LoginForm)=>mutateAsync(form),
加载:卸载,
重置:()=>reset(),
服务器错误:错误?错误[“消息”]:“”,
成功:成功,
};
};
//indexedDb函数(第一部分,这是命名不同的原因):
静态createDB(){
const request=indexedDB.open(DB_NAME,1);
request.onupgradeneeded=(e:IDBVersionChangeEvent)=>{
const db=e.target[“result”];
返回db.createObjectStore(我的存储,{autoIncrement:true});
};
request.onerror=()=>{
抛出新错误(“不支持此浏览器”);//未捕获错误
};
}
最简单的方法可能会使其成为变异fn的一部分,在您的情况下,\u登录(表单)
。你可以正常地在那里等待你的变异,然后保存到IndexedDB