我的场景是这样的:
- API a 是比较常见的接口,几乎每个页面都要调用
- API b 是依赖 a 的结果,去调用的
我先把 API a 和 b 用 react query 抽象成 hook:
const useFetchA = (params) => {
return useQuery(['fetchA', params], async () => {
return await API.a(params)
})
}
// useFetchB 也类似,就不写了
然后在很多组件上都有这样的两行:
const resA = useFetchA('xxx');
const resB = useFetchB('yyy');
我也想过要 API.a 和 API.b 放在一个 hook 里,但是这样,单独使用 API.a 或 API.b 的时候就不方便了。
也想过把 useFetchA 和 useFetchB 再放在一个 hook 里,类似这样:
const useFetchAandB = (params) => {
const {data: resA} = useFetchA(params)
const {data: resB} = useFetchB(resA)
}
不知道这样是否可行?有什么隐患?是否符合规范?