RTK Query 的useLazyQuery hook 错误处理?
Error handling in useLazyQuery hook of RTK Query?
以下是我对 useLazyQuery 挂钩的实现:
const [trigger,
{
loading: prodLoading,
error: prodError,
data: prodData
}
] = prodApi.endpoints.getAllProducts.useLazyQuery();
其中result
参数被解构为prodLoading
、prodError
、prodData
。
当将正确的参数传递给查询时,可以通过 prodData
访问获取的产品,但如果出错,则无法通过 prodError
访问任何内容,这让我想到了我的问题,我们如何处理错误useLazyQuery
钩子?
有什么方法可以获取我们在useQuery钩子中使用的isLoading
、error
等参数吗?
const {data, error, isLoading, isSuccess} = useGetAllProductsQuery('', {skip,});
其实和普通useQuery
的界面一模一样。
只有一件事令人担心 - 似乎您正在阅读不存在的 loading
文件,预计是 isLoading
。除此之外,它很简单:
const [trigger, { isLoading, isError, data, error } ] = prodApi.endpoints.getAllProducts.useLazyQuery();
或
const { data, isLoading, isError, error } = await trigger();
如果您将 error
和 isError
记录到控制台以检查是否确实发生了错误,那就太好了。
以下是我对 useLazyQuery 挂钩的实现:
const [trigger,
{
loading: prodLoading,
error: prodError,
data: prodData
}
] = prodApi.endpoints.getAllProducts.useLazyQuery();
其中result
参数被解构为prodLoading
、prodError
、prodData
。
当将正确的参数传递给查询时,可以通过 prodData
访问获取的产品,但如果出错,则无法通过 prodError
访问任何内容,这让我想到了我的问题,我们如何处理错误useLazyQuery
钩子?
有什么方法可以获取我们在useQuery钩子中使用的isLoading
、error
等参数吗?
const {data, error, isLoading, isSuccess} = useGetAllProductsQuery('', {skip,});
其实和普通useQuery
的界面一模一样。
只有一件事令人担心 - 似乎您正在阅读不存在的 loading
文件,预计是 isLoading
。除此之外,它很简单:
const [trigger, { isLoading, isError, data, error } ] = prodApi.endpoints.getAllProducts.useLazyQuery();
或
const { data, isLoading, isError, error } = await trigger();
如果您将 error
和 isError
记录到控制台以检查是否确实发生了错误,那就太好了。