javascript - 链接查询树,不带“渲染的钩子比上一次渲染时更多”
问题描述
这是一个使用 rest 链接的 apollo 客户端。我有 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 效果。像阿波罗这样的顺序查询的正确方法是什么?
解决方案
您可以将第二个查询移动到子组件中。当第一个查询完成后,您呈现所有子组件,然后他们可以安全地使用第二个查询(无条件)。
推荐阅读
- mysql - 使用 SQL Left Join 解决大量延迟问题
- java - java - 按长度拆分字符串,保持子字符串完整
- javascript - 当我尝试将自己的样式应用于 Tileserver PHP 提供的图块时,我收到此错误:“无法解析 URL 对象”
- javascript - Javascript 时间,显示 2020.04.03 和时间,我如何拆分年份以显示 20.04.03
- c - MAC OS X:zsh:从 Codeblocks 运行程序后,没有这样的文件或目录
- python - Python 中的头或尾
- reactjs - 我的 React 引导路由页面路径在实时刷新后不起作用
- mongodb - mongodb中的自连接查询并返回带有条件的父子文档的字段
- android - 即使应用程序被杀死并且手机被锁定,如何在手机上显示响铃 UI?
- azure-devops - 在为 Dynamics 365 Field 服务导出解决方案时,在 Azure DevOps 中提供的解决方案名称是什么?