reactjs - 如果 NOT 可选变量未定义,则跳过查询
问题描述
我必须运行一个具有强制变量的查询,该变量是另一个查询的结果。由于这样的结果可以是number | undefined
,打字稿抱怨说我的变量只能是 anumber
而不是 undefined
const { data: firstQueryData } = useQuery(GET_MY_FIRST_QUERY_DATA, {
variables: {
firstVariable: 100
}
})
const myVariable = myQueryData?.getMyQueryData <-- This is "number" | "undefined"
const { data: secondQueryData } = useQuery(GET_MY_SECOND_QUERY_DATA, {
variables: {
secondVariable: myVariable <-- This is "number" | "undefined" while it should only be "number"
}
})
我尝试使用skip但 TS 仍然抱怨:
const { data: mySecondQuery } = useQuery(GET_MY_SECOND_QUERY_DATA, {
variables: {
secondVariable: myVariable
},
skip: !myVariable
})
解决方案
我有同样的问题并通过首先检查变量的真实性来解决它,例如:
const { data: mySecondQuery } = useQuery(GET_MY_SECOND_QUERY_DATA,
myVariable
? {
variables: {
secondVariable: myVariable,
},
}
: { skip: true }
);
希望有帮助!
推荐阅读
- python - Pyspark 使用正则表达式在第一次出现时拆分
- haskell - 计算给定输入类型的函数返回类型
- sql - 从匹配特定条件的大表中选择(稀疏)数据点
- php - 生产网站弹出sandbox.paypal支付窗口,而不仅仅是paypal.com支付窗口
- python - 访问被拒绝运行 Jupyter Notebook (Anaconda)
- c++ - Qt C++ 在表之间拖动 QHeaderView
- vb6 - 代码含义——visual basic 6类文件
- mysql - sql复杂连接
- android - NativeScript loadStarted WebView 事件不会在 Android 上触发
- powershell - Powershell - 使用所有者的邮件地址获取统一组