2

我对所有提到的技术都是新手,我试图了解在这种情况下我应该如何操作:我正在尝试从 API 获取 CSV 文件,一旦检索到我想处理它以将其转换为 json 之类的然后我可以在我的一个组件中使用该对象。例如,我想在表中查看这些数据并对这些数据执行操作,这会导致该数据的状态发生变化。

从文档中transformResponse定义的每个端点都有一个字段,我可以使用它来规范化我的应用程序所需的数据:

const api = createApi({
  baseQuery: fetchBaseQuery({
    baseUrl: '/',
  }),
  tagTypes: ['Post'],
  endpoints: (build) => ({
    getPost: build.query<Post, number>({
      // note: an optional `queryFn` may be used in place of `query`
      query: (id) => ({ url: `post/${id}` }),
      // Pick out data and prevent nested properties in a hook or selector
      transformResponse: (response: { data: Post }) => response.data,
      ...

这可以工作,但是我会对如何调度动作来改变这个状态有些困惑。

另一种解决方案是使用 Redux Toolkit 存储切片来保存获取的数据并执行转换操作和调度操作。

任何帮助都是极好的!

4

1 回答 1

7

RTK Query 状态并不意味着是在客户端本地更改的状态 - RTK Query 是一个纯粹的缓存。

它适用于您的工作流程

  • 从服务器获取数据
  • 显示该数据
  • 向服务器发送更改请求
  • 从服务器获取新数据
  • 再次显示该数据

RTK-Query 的目的是使该过程对您来说尽可能简单,并接管诸如在服务器上触发更改后自动重新获取以及从缓存中删除旧值等内容。

如果您想将数据保存在本地以对它们进行本地更改,您应该使用传统切片。

于 2021-08-12T15:23:53.660 回答