You need to enable JavaScript to run this app.
最新活动
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

关于RTKQuery中的“OptimisticupdateVSinvalidatesTags”

在RTK Query中,当使用Optimistic update(乐观更新)时,我们希望将我们的状态更改体现在UI中,即使后台请求尚未完成。但是,当使用invalidateTags时,我们可以使状态失效并重新获取新数据。这两种技术的使用方式互斥,因为乐观更新将导致状态的不一致性。

因此,我们需要考虑在使用RTK Query时,如何同时使用乐观更新和invalidateTags。

RTK Query为我们提供了一个选项:keepUnusedData。此选项可以使RTK Query通过将我们旧的查询数据标记为“无用”,而不是将其替换为新数据来更新我们的状态。这意味着如果我们的请求失败或已过时,我们将仍然显示我们的旧数据。

在使用乐观更新时,我们可以在我们调用API函数(如useGetPostsQuery)时,将keepUnusedData选项设置为true。这将在我们发出乐观更新时保留我们的旧数据。同时,我们还可以调用invalidateTags函数来使数据失效并重新获取新数据。

以下是示例代码:

import { useGetPostsQuery } from 'src/features/posts/postsAPI';

// 在调用API函数时设置keepUnusedData为true
const { data: posts, isLoading, isError, refetch } = useGetPostsQuery(undefined, {
  keepUnusedData: true,
});

// 乐观更新
const handleUpdate = async (postId: string) => {
  await updatePost(postId);
  // 调用invalidateTags函数
  refetch({ forceRefetch: true });
};
本文内容通过AI工具匹配关键字智能整合而成,仅供参考,火山引擎不对内容的真实、准确或完整作任何形式的承诺。如有任何问题或意见,您可以通过联系service@volcengine.com进行反馈,火山引擎收到您的反馈后将及时答复和处理。
展开更多
面向开发者的云福利中心,ECS 60元/年,域名1元起,助力开发者快速在云上构建可靠应用

社区干货

深度解读 Android 14 重要的 8 个新特性|社区征文

**调用** **invalidate** **动态更新高亮**通过如下的代码进行黄色和绿色的静态高亮设置,以及点击 Button 之后动态更新绿色高亮为深蓝色高亮:```kotlin class MainActivity : AppCompatActivity() { ... putExtra(SearchManager.QUERY, "Search on web 🌐.") }, PendingIntent.FLAG_IMMUTABLE ) ​ val chooserAction = ChooserAction.Builder( ...

特惠活动

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

关于RTKQuery中的“OptimisticupdateVSinvalidatesTags” -优选内容

深度解读 Android 14 重要的 8 个新特性|社区征文
**调用** **invalidate** **动态更新高亮**通过如下的代码进行黄色和绿色的静态高亮设置,以及点击 Button 之后动态更新绿色高亮为深蓝色高亮:```kotlin class MainActivity : AppCompatActivity() { ... putExtra(SearchManager.QUERY, "Search on web 🌐.") }, PendingIntent.FLAG_IMMUTABLE ) ​ val chooserAction = ChooserAction.Builder( ...
数据字典
db 'db_name' table 'table_name' where 'id=10' invalidate_query 'SQL_QUERY'))ClickHouse SQL SOURCE(CLICKHOUSE( host 'example01-01-1' port 9000 user 'default' password '' db 'default' table 'ids' where 'id=10'))PostgreSQL SQL SOURCE(POSTGRESQL( port 5432 host 'postgresql-hostname' user 'postgres_user' password 'postgres_password' db 'db_name' tab...
API 详情
queryTime;获取指定播放时间的字幕信息。 传入参数 参数名 类型 说明 queryTime NSInteger 指定的播放时间。 返回值 返回指定播放时间的字幕信息 TTVideoEngineSubInfo 。 TTVideoEngineDownloader objectivec @i... invalidateAndCancel void suspend void resume 变量说明 taskDescriptionobjectivec @property (nullable, copy) NSString *taskDescription;设置下载任务描述。 countOfBytesReceivedobjectivec @property (rea...
可修改参数列表(MySQL 5.7)
10 binlog_rows_query_log_events OFF 否 [ONOFF] 11 binlog_stmt_cache_size 32768 否 [4096-16777216] 12 block_encryption_mode aes-128-ecb 否 [aes-128-ecbaes-192-ecbaes-256-ecbaes-128-cbcaes-192-cbcaes... invalidate OFF 否 [ONOFF] 180 query_prealloc_size 8192 否 [8192-1048576] 181 range_alloc_block_size 4096 否 [4096-18446744073709551615] 182 range_optimizer_max_mem_size 8388608 是 [0-184467440737095...

关于RTKQuery中的“OptimisticupdateVSinvalidatesTags” -相关内容

特惠活动

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

产品体验

体验中心

云服务器特惠

云服务器
云服务器ECS新人特惠
立即抢购

白皮书

一图详解大模型
浓缩大模型架构,厘清生产和应用链路关系
立即获取

最新活动

爆款1核2G共享型服务器

首年60元,每月仅需5元,限量秒杀
立即抢购

火山引擎增长体验专区

丰富能力激励企业快速增长
查看详情

数据智能VeDI

易用的高性能大数据产品家族
了解详情

一键开启云上增长新空间

立即咨询