RTK 查询的目标是应跳过的参数

问题描述 投票:0回答:1

RTK-query 接受

skip
选项,当该选项为 true 时跳过请求:

const {data} = useGetMyDataQuery(myParams, {skip: myCondition});

我希望在访问

myParams
之前检查跳过,并在应该跳过的时候跳过运行该代码。

例如在下面的代码中,我希望当

myCondition
为 true 时该函数不会运行。

const getMyParams = () => params; 
const {data} = useGetMyDataQuery(getMyParams(), {skip: myCondition});

this示例中,我从可能未定义的对象获取参数。当对象未定义时,我会跳过调用,因此我希望参数代码仅在满足条件时运行。但事实并非如此,当您单击“添加空”按钮时,您可以看到它给出了空指针错误。

这是 RTK 查询的正常行为还是我做错了什么?

reactjs typescript react-redux rtk-query
1个回答
0
投票

这与 RTK 查询无关,这就是 JavaScript 的工作原理。

useGetMyDataQuery
是一个函数,参数在传递给函数之前会被求值。 RTK 查询不知道您是否在那里写入
myParams
getMyParams()
- 它只会看到最终值。

您可以在这里使用

skipToken
代替:

import {skipToken} from '@reduxjs/toolkit/query'
const {data} = useGetMyDataQuery(myCondition ? skipToken : getMyParams());
© www.soinside.com 2019 - 2024. All rights reserved.