使用 RTK 查询时,异步/等待承诺的方法是否不好?

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

刚加入一个项目,第一次在 React Native 中实现 RTK Query。这似乎是该团队的其他成员第一次使用 RTK 查询。目前的设置方式,他们经常使用类似

const [someFunctionality] = useSomeFunctionalityMutation();

return async (someParams) => { 
const response = await someFunctionality(someParams)

if ('data' in response) { dispatch(successAction) }
else if ('error' in response) { 
  dispatch(errorAction); 
  setSomeState(error); 
} 
}

我的职业生涯还很早,只在之前的一个项目中使用过 RTK Query。在我们想要因突变而产生副作用的情况下,我们会选择一些像

const [someFunctionality] = useSomeFunctionalityMutation();

someFunctionality(someParams)
  .unwrap()
  .then(() => dispatch(successAction))
  .catch((error) => {
    dispatch(errorAction);
    setSomeState(error);
  }

虽然我们从来没有把它写成一个可重用的函数。

第一种方法似乎没有问题,但我想知道:

一种方法优于另一种方法吗?为什么?第一种方法是否会导致在基本测试中没有注意到的问题?由于此功能对团队中的许多人来说都是新功能,因此我想确保我们正在建立良好的标准。感谢您的帮助!

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

简而言之,在这种特定情况下,由于代码上的信息,second 方法更受青睐和推荐。

RTK QuerryRedux Toolkit 的一个插件,专为数据查询而构建。

RTK Query 是一个强大的数据获取和缓存工具。它旨在简化在 Web 应用程序中加载数据的常见情况,无需您自己手写数据获取和缓存逻辑。

RTK Query 是 Redux Toolkit 包中包含的可选插件,其功能构建在 Redux Toolkit 中的其他 API 之上。

对于更多

详细RTK查询有两个主要的查询数据的功能

这是 RTK 查询最常见的用例。可以使用您选择的任何数据获取库执行查询操作,但一般建议您只对检索数据的请求使用查询。对于任何改变服务器上的数据或可能使缓存无效的东西,你应该使用 Mutation。

突变用于向服务器发送数据更新并将更改应用到本地缓存。突变还可以使缓存数据无效并强制重新获取。

简而言之,Query 用于检索数据,Mutation 用于其他目的,即变异数据。

这意味着,在上面的代码中,第一个用例应该使用 Query 而不是 Mutation

此外,RTK Query 是一个插件,因此它也与 RTK 协作。即:使用 extraReducer

.
处理 RTK Query

查询状态

有很多支持抓取,在选项卡查看所有功能使用RTK查询this,所以值得迁移到。

© www.soinside.com 2019 - 2024. All rights reserved.