- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我刚刚整合到 redux-toolkit
.我的目标是存储查询的结果 getPosts
在 slice
,所以我可以在整个网站上使用它或更改它。
我的 createApi
是这样的:
export const postsApi = createApi({
reducerPath: "posts",
baseQuery: getGeneralFetchBaseQuery(),
endpoints: (builder) => ({
getPosts: builder.query<PostsType, number>({
query: (id) => `api/posts/${id}`,
}),
}),
});
export const { useGetPosts } = postsApi;
我想存储来自
getPosts
的结果在这片
export const postsSlice = createSlice({
name: "posts",
initialState,
reducers: {},
});
export default postsSlice.reducer;
我的商店是这样的
export const mainStore = configureStore({
reducer: {
postsReducer,
[postsApi.reducerPath]: postsApi.reducer,
},
})
如何做到这一点?
最佳答案
让我先这样说:一般来说,你可能不应该这样做。
RTK-Query 是一个完整的缓存解决方案 - 因此在大多数解决方案中您通常不应该从中复制状态,而是让 RTK-Query 控制该数据。
如果要更改它,请暂时将其复制到本地组件状态(顺便说一下,这适用于所有类型的表单状态,您不应在 redux 中就地编辑表单,而是将其暂时移至本地组件状态) ,使用突变将其保存回服务器,然后让 RTKQ 重新获取该数据以更新缓存。
无论您在何处需要该数据,只需调用 useGetPostsQuery()
你很好 - 如果尚未获取该数据,它将被获取,否则您将只从缓存中获取值。
哦,奖金:你不应该为每个资源创建一个额外的 api。你应该有一个 createApi
在几乎所有情况下都调用您的应用程序 - 您仍然可以使用 Code Splitting 将其拆分为多个文件.
综上所述,当然,如果您有一个很好的用例,您可以将该数据复制到一个切片中 - 但请注意,通过这种方式,您现在有责任使该数据保持最新并在您需要时对其进行清理不再需要它了。通常,RTKQ 会为您做到这一点。
这是一个关于如何将查询中的数据克隆到切片中的示例,取自 RTKQ examples page :
const slice = createSlice({
name: 'auth',
initialState: { user: null, token: null } as AuthState,
reducers: {},
extraReducers: (builder) => {
builder.addMatcher(
api.endpoints.login.matchFulfilled,
(state, { payload }) => {
state.token = payload.token
state.user = payload.user
}
)
},
})
关于reactjs - 如何将来自 createApi 的查询结果存储在切片中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68612556/
我正在用 python 中的 matplotlib 绘制条形图(数据存储在字典中): plt.bar(range(len(Data)), result3.values(), align='center
是否有一种快速/更简单的方法可以从 PSD 创建 iOS UI 主题(标准和 2x 分辨率)所需的图形文件,例如 http://graphicriver.net/theme_previews/2989
我想切断可折叠集中 jquery 移动 header 的左上角。 这是我的 HTML: Witness Content f
背景:我有一个 C99 例程,需要临时存储具有不同对齐要求的不同数据类型。目前,我多次调用 posix_memalign,这 a) 引入了大量开销,b) 不能保证我的临时对象具有良好的内存局部性。我无
给定的文件格式如下。 GGRPW,33332211,kr,P,SUCCESS,systemrenewal,REN,RAMS,SAA,0080527763,on:X,10.0,N,20120419,mi
这个问题在这里已经有了答案: Cut Corners using CSS (16 个答案) 关闭 7 年前。
我正在尝试剪掉设置了上边框的 span 元素的左上角。 一切正常,除了边框一直在白色 CSS 三 Angular 形上运行。这可以通过从 .contract span 中删除 overflow: hi
我目前正在执行一个相当复杂的数据预处理操作,这是: cat large_file.txt \ | ./reverb -q | cut --fields=16,17,18 | awk -F\\t -vq
这两个命令可以将文件的大小保存到一个变量中,因为我是linux新手,我无法理解那里的工作原理。请解释一下它们是如何工作的。 ls -l | grep testing.txt | cut -f6
我使用 pandas.cut() 将连续变量离散化为一个范围,然后按结果分组。 因为我无法弄清楚哪里出了问题而发了很多誓,我了解到,如果我不为 cut() 函数提供自定义标签,而是依赖默认值,那么输出
我有一个名为 log.log 的实时日志文件,我想在其中捕获一些匹配的模式和值: 例子:log.log 正在增长,我们正在搜索具有模式“ResponseTime = VALUE”的行,我们希望提取匹配
我是一名优秀的程序员,十分优秀!