这是使用其余链接的阿波罗客户。 我有2个需要打的API,1个带有记录的值和ID,另一个API提供了有关记录的更多信息。然后,我将要呈现的内容的信息缝合在一起。不,不,没有gql后端,只是想站稳脚跟并吸引客户。 我尝试执行此操作的方法是使用类似的钩子
const {data: recordsById = {}, loading: loading1} = useQuery(firstQuery, {variables: {sectionId}})
const records = Object.keys(recordsById).map((recordId) => {
const {data} = useQuery(secondQuery, {skip: loading1, variables: {sectionId, recordId}})
return {
id: recordId,
value: recordsById[recordId],
info: data,
}
})
很明显,当firstQuery用{fooId: 'something', barId: 'else'}
之类的对象响应时,在下一个渲染中会有更多useQuery效果。
像w / apollo这样的顺序查询的正确方法是什么?
答案 0 :(得分:0)
您可以将第二个查询移到子组件中。 当第一个查询完成后,您将呈现所有子组件,然后它们可以安全地使用第二个查询(无条件)。
答案 1 :(得分:0)
反应失败,因为在内部,它将钩子的每次调用绑定到组件及其调用的顺序,这意味着在每个组件中,钩子的调用顺序和被调用的钩子的数量应为常数,在您的组件中应避免使用钩在任何种类的循环中,例如将其拆分为单独的组件