You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

RTK Query:如何有条件地从props的useLazySearchQuery获取trigger?

解决方案

你之前的写法报错,是因为当props.useLazySearchQuery为undefined时,props.useLazySearchQuery && props.useLazySearchQuery()的结果是undefined,而你试图对undefined做数组解构,这在JS里会抛出“Cannot destructure property '0' of 'undefined' as it is undefined”的错误。

可以用以下两种方式解决:

方式一:可选链+默认空数组

用可选链操作符?.确保只有钩子存在时才调用,再用空数组作为默认值,避免解构报错:

const [trigger] = props.useLazySearchQuery?.() ?? [];

当钩子不存在时,props.useLazySearchQuery?.()返回undefined,?? []会把它替换成空数组,此时trigger会被赋值为undefined,不会触发错误。

方式二:条件判断后执行

如果觉得可选链语法不够直观,也可以用常规的条件判断:

let trigger;
if (props.useLazySearchQuery) {
  [trigger] = props.useLazySearchQuery();
}

这种写法逻辑清晰,只有当钩子存在时才执行解构操作,不存在时trigger保持undefined。

内容的提问来源于stack exchange,提问作者Kostya GL

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 11:57:05