问题标签 [rtk-query]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
92 浏览

typescript - 推断回调函数参数的返回类型

我正在寻找一种方法来推断作为参数传递的回调函数的返回类型。目的是实现一个异步操作处理程序钩子,它可以调用 rtk-query 突变函数并以结构化方式返回响应,其中我们有一个errororsuccess响应。

沙箱:https ://codesandbox.io/s/rtk-hook-ts-0bue6

钩子代码看起来像(必须增强它以T从传递的 rtk 钩子推断):

0 投票
2 回答
609 浏览

redux-toolkit - 如何使用 redux-toolkit 动态更改基本 URL?

我使用redux工具包创建API问题很简单:如何动态改变API中的baseUrl?详细问题:这里是createApi方法 一个对象被传递给这个方法,其中一个键是“baseQuery”

问题来了,如何动态更改 baseUrl?它在商店里,但我不能把它放在这里。我尝试了自定义查询文档中的解决方案 https://redux-toolkit.js.org/rtk-query/usage/customizing-queries#constructing-a-dynamic-base-url-using-redux-state

但它不允许完全更改 baseUrl,只能动态处理请求本身,这已经在 baseUrl 之后

那么,如何在 createApi 方法中获取和更改 baseUrl 呢?

0 投票
1 回答
772 浏览

reactjs - 使用 REDUX/RTK Query 删除项目后如何刷新页面?

我正在使用这样的 RTK Query 从我的 api 获取数据

我像这样从我的桌子上删除一枚硬币

在我的前端组件中:我正在调用 dispatch(deleteCoin(id));

删除功能正在工作,因为在我的数据库中它被删除了,但是组件没有刷新,所以硬币仍然存在于 UI 上,除非我自己手动刷新页面。

我尝试从 RTK 查询访问全局数据,但无法成功我试图使用 useEffect 并从

const { 数据,isFetching } = useGetCoinsQuery();

但是它仍然没有重新加载我的组件?我还能如何重新加载我的组件?这是我第一次使用 RTK Query,所以我不确定如何真正访问该数据以及它如何监听 API 服务器中的数据变化?谢谢

0 投票
0 回答
30 浏览

reactjs - 如何在查询中从 url 中删除网关

我目前正在学习如何将 Redux ToolKit Query 与 Open Weather Map API 一起使用,但是当我通过我的应用程序访问端点时,请求包括 localhost 并给了我以下响应:

“您需要启用 JavaScript 才能运行此应用程序。” 带有 200 状态码。

我想知道有没有办法可以从请求中删除 localhost 部分?在没有它的情况下点击该端点会返回正确的信息,因此问题不在于查询或 API_KEY 不正确。

通过应用程序请求:http://localhost:3000/api.openweathermap.org/data/2.5/weather?q=dublin&appid=${API_KEY}

这是我对端点的调用:

这是我然后打电话的地方useGetWeatherQuery

0 投票
0 回答
83 浏览

javascript - 如何使用 RTK Query 获取查询和突变的全局 isFetching 状态

查询返回类似isFetching 的状态,非常好。这是在查询级别

但是如果我们有很多查询并且我们想监控其中一个是否是isFetching,例如显示一个全局加载指示器

所以现在我想要类似的东西https ://react-query.tanstack.com/guides/background-fetching-indicators#displaying-global-background-fetching-loading-state

当使用RTK Query获取任何查询(包括在后台)时,如何制作全局加载指示器?

0 投票
1 回答
127 浏览

redux-toolkit - Reduxtoolkit createApi 如何混合和解析两个端点结果?

tldr; 如何混合两个或多个 createApi 端点结果?

所以我使用createApi的是reduxToolkit,我遇到的问题很简单,但我有点迷失在这个漂亮工具的庞大文档中。

这个想法是我有一个视图,它将混合来自两个不同 api 端点的数据,例如:

/用户 /汽车

该视图将显示一个混合了两种结果的数组(例如,汽车图像仅在 /cars 中)。

有点像transformResponse,但对于 2 个端点

进行这种混合的正确方法是什么?(在视图中这样做似乎不是最好的,我也不想要那个后端)。

您可能会告诉我使用 reducer,但 reducer/slice 在 createApi 模式中的位置是什么?那是我不明白的。

0 投票
1 回答
187 浏览

typescript - 使用分码时如何创建 RTK-Query 端点类型

我目前正在为应用程序构建一个 rtk-query 包,我正在使用代码拆分(通过使用injectEndpoints,因为可能涉及数百个端点)。但是,我还想实现一个类似于docs 中的自动预取钩子的预取钩子

有没有办法为这些端点生成正确的 Typescript 类型?上面的钩子将端点类型定义为type EndpointNames = keyof typeof api.endpoints,但是我的所有端点都是这样定义的(如文档所述):

如果这不可能,usePrefetch从不同injectEndpoints方法导出多个钩子的最佳方法是什么?

0 投票
1 回答
298 浏览

react-native - 如何在 React Native 应用程序中使用 Redux RTK 访问状态

我在我的反应原生项目中使用 Redux RTK 查询,我无法弄清楚如何在不每次触发查询的情况下访问状态。

我用我的创建了一个 apicustomBaseQuery

然后我注入了我的端点。

并配置了商店:

当我打开应用程序时,我使用 redux 生成的钩子调用 getUser API。这有效,我得到了预期的响应。

const { data } = useGetUserQuery(input)

现在,我需要在我的应用程序的另一个屏幕中访问用户数据,而无需再次调用 API(redux 应该已缓存/持久化数据)但我无法访问状态。

我尝试了以下方法:

getUser始终未定义。但是,如果我打印整个state数据,我可以看到数据。如何在不再次调用 API 的情况下从应用程序的任何位置访问状态?

0 投票
1 回答
39 浏览

reactjs - React.lazy 回调是否保证只运行一次?

回调是否React.lazy保证只运行一次?

用例是注入 RTK 和 RTKQ 端点,例如:

0 投票
1 回答
106 浏览

javascript - RTK 查询正在循环结果,但未提供预期内容

我目前正在做 Redux Essentials 教程并停留在第 7 章:从经典 thunk 切换到 时RTK query,映射将不起作用:

错误信息是:

为了找到原因,我将代码分解为以下简单内容:

我好奇的代码的输出是:

loop: 0 typ: string ID: undefined!! loop: 1 typ: string ID: undefined!! loop: 2 typ: string ID: undefined!!

所以它是循环的,但变量中没有正确的值。这很奇怪,因为帖子变量似乎具有正确的内容。这是评估的输出:

评估

在提到的教程页面末尾打开沙箱也不会呈现帖子 - 因此某处可能存在错误。

由于我没有找到任何类似的问题描述,我希望你能给我一些错误的提示。