reactjs - 在 apollo graphql react 中处理条件查询的更好方法
问题描述
我正在使用@apollo/client
并且在组件中有一组查询,我需要有条件地调用它们。
前任 :
const { data: userTypeOneData, loading: userTypeOneLoading, error: userTypeOneError } = useQuery<
UserTypeOneQuery,
UserTypeOneQueryVariables
>(USER_ONE_QUERY, {
variables: {
parameterXXX: xxx
},
fetchPolicy: 'cache-and-network',
skip: !isUserTypeOne
});
const { data: userTypeTwoData, loading: userTypeTwoLoading, error: userTypeTwoError } = useQuery<
UserTypeTwoQuery,
UserTypeTwoQueryVariables
>(USER_TWO_QUERY, {
variables: {
parameterYYY: yyy
},
fetchPolicy: 'cache-and-network',
skip: !isUserTypeTwo
});
const { data: userTypeThreeData, loading: userTypeThreeLoading, error: userTypeThreeError } = useQuery<
UserTypeThreeQuery,
UserTypeThreeQueryVariables
>(USER_ONE_QUERY, {
variables: {
parameterZZZ: zzz
},
fetchPolicy: 'cache-and-network',
skip: !isUserTypeThree
});
现在,它位于我的组件中,仅占用大约 100 行。我有几组根据用户类型调用查询的组件,我不知道如何使它更干净。
有没有办法以一种干净的方式将这个逻辑拆分到某个地方?或者在graphql中以不同的方式处理这个?
解决方案
推荐阅读
- java - java.lang.IllegalArgumentException:org.hibernate.hql.internal.ast.QuerySyntaxException:用户未映射[来自用户]
- c# - C# SqlCommands 不起作用
- node.js - 代理在 nginx 上传递 Socket.IO 连接不起作用
- lightgbm - LightGBM 选择回归目标(GPU)
- ios - iOS 如何在 Apple 的私有 API 中找到字符串
- c# - 如何在列表中 StreamWrite 画笔的颜色
? - c# - C#我想对exe进行mac地址验证
- mysql - mysql 说 root@localhost 是使用空密码创建的!但是什么也没发生。我错过了什么?
- javascript - 多文件申报顺序
- list - 仅使用列表推导的 Haskell“连接”元组列表