问题标签 [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.
reactjs - 为什么清理 useEffect 挂钩会看到 RTKQ 的结果为 isLoading 以及如何避免该问题?
我有一个 React 函数组件(一个路由组件),它在卸载时应该做一些事情(即用户单击浏览器的后退按钮)并包含以下相关行:
它与包装中的useParams
钩子有关吗?react-router
这是 RTKQ 中的错误,或者,如果不是,定义的行为是什么?而且,最重要的是,如何data
在组件卸载之前获得最后定义的值?
没有错误消息。
更新 1
我用:
更新 2
我敢肯定,params
没有得到更新,甚至没有params.x
。我也升级到了@reduxjs/toolkit
v1.6.1
,我也有同样的问题。
更新 3
带有孤立问题的代码沙箱在这里。在我看来,这是 RTKQ 中的一个错误。
更新 4
我在这里打开了一个 GH 错误报告。
caching - cacheEntryRemoved 承诺何时实现?
文档是这样说的:
cacheEntryRemoved
- 一个 Promise,允许您等待缓存条目从缓存中删除的时间点,方法是在应用程序中不再使用/订阅太长时间或调度 api.utils.resetApiState。
我已经在视觉上扫描了文档,但我还没有像我想的那样理解这部分。
上面的引用是否意味着当使用查询的组件卸载时,承诺已经实现?
组件何时接收流式更新呢?
cacheEntryRemoved
当不再需要从 WS 服务器接收的部分消息时,在 onCacheEntryAdded 中实现承诺后立即部分取消订阅现有的 WebSockets 连接是否是一种好习惯?还是从 WS 连接的该通道取消订阅 useEffect 挂钩的清理功能更好?
我有一个 Socket.IO 连接,用于并行接收更多通道的消息,一些组件需要一个通道,一些其他组件需要另一个,其他一些组件需要与现有已安装组件相同的通道。履行此承诺后是否可以退订频道?我在这个其他问题中提供了更多关于此的信息。
redux-toolkit - 请求后更新其他切片
使用RTK Query,如何使用获取功能来更新另一个切片的状态?
本质上,我试图让所有相关状态彼此相邻,因此在使用 查询数据后useLazyGetQuery
,我想使用结果并将其存储在现有的切片状态中。
虽然像下面这样的东西适用于组件,但它会使整个代码变得混乱
我宁愿直接在createApi
方法中设置一些逻辑,以便将结果数据从头开始存储在我想要的切片中。
谢谢
reactjs - 处理获取的数据 - RTK Query / Redux 工具包 / React
我对所有提到的技术都是新手,我试图了解在这种情况下我应该如何操作:我正在尝试从 API 获取 CSV 文件,一旦检索到我想处理它以将其转换为 json 之类的然后我可以在我的一个组件中使用该对象。例如,我想在表中查看这些数据并对这些数据执行操作,这会导致该数据的状态发生变化。
从文档中transformResponse
定义的每个端点都有一个字段,我可以使用它来规范化我的应用程序所需的数据:
这可以工作,但是我会对如何调度动作来改变这个状态有些困惑。
另一种解决方案是使用 Redux Toolkit 存储切片来保存获取的数据并执行转换操作和调度操作。
任何帮助都是极好的!
redux-saga - 在 Redux Saga 任务中手动触发 RTK 查询或突变
我在存在最好与组件分离的复杂业务逻辑的情况下使用 Redux-Saga。我们正在采用 RTK 查询,无法手动使用端点。是的,我知道 Redux 最佳实践文档建议尽可能使用 Thunk。
这个特定的 saga 任务示例并不能很好地使用 Redux-Saga,但肯定存在业务逻辑如此复杂/长/复杂以至于它不属于组件的情况,而我们使用的 saga 功能可以不要(优雅地)用一个简单的 Thunk 模拟。在这个例子中,我想在后端做一个简单的突变(发布请求):
该yield call(authApiEndpoints.addCustomer.initiate, action.payload)
声明没有做任何事情。
你如何在 Saga 中执行突变?
reactjs - 在使用 RTKQ 查询的组件中对单击事件调用 updateCachedData 的正确方法是什么?
我只能考虑在全局某处存储对 updateCachedData 的引用并在该单击事件中使用它,但我不确定这是 React 执行此操作的方式。
我有一个使用 Socket.IO 服务器构建的通知源。
通过单击通知,它应该会从列表中删除。(该列表应仅显示未读通知。)
但是从列表中删除时,我会在通知窗格中创建一个新数组作为状态。
当我收到新通知时,所有已删除的通知都会返回 - 这不是我想要的。
如何更改缓存条目,更准确地从中删除项目,而无需重新请求所有通知?
没有错误消息。
代码
javascript - 无法读取未定义的属性“providesTags”
我正在使用 RTK 查询通过“useGetUserQuery”通过 api 获取一条记录
Api Call 没问题,因为后端有结果。我使用 sequelize 并且我的结果发送数据对象。我试图删除提供标签,但我有同样的问题。
我的前端返回此错误:
我的 RTK 查询代码在这里:
rtk-query - Typescript Union 和 Type Guard
SerializedError
摆脱使用 RTK Query的最佳方法是什么error
,例如此处的示例:https ://redux-toolkit.js.org/rtk-query/usage/error-handling 。还有一个例子可以为单个查询输入错误吗?提前致谢
reactjs - Redux 工具包 RTK 查询突变没有得到返回数据
嗨,我最近使用 rtk 查询工具学习了新的 react 工具包,我正在尝试使用createApi
rtk 包中的登录系统。
在按下登录按钮对其进行测试后,我看到网络请求通过没有任何问题(状态代码 200),并且我得到一个提供的响应对象user
,token
但是,当我尝试使用我获取返回数据时,useLoginMutation
我得到一个未定义的值。
下面是我的端点的代码,它被注入到一个基本的 api 中:
然后在我的 React 组件中,我解构突变结果,如下所示:
假设如果我控制台注销data
并且isLoading
我假设我会看到data: {user: "abc", token: "xyz"}
,因为在我的检查窗口的网络选项卡下我可以看到这个网络请求的响应,但我看到的是data: undefined
有没有人有解决这个问题的经验?
redux - 获取另一个查询 RTK 查询时更改突变值?
我有一个获取所有数据的查询,还有一个处理删除项目的突变
当 isFetchingProducts 为真时,我试图使 productDeleted 为假,例如,我们可以在旧的 redux 中实现这一点
如何在 RTK 查询中做到这一点?谢谢