如何在react native应用中使用Redux RTK访问状态



我在react native项目中使用Redux RTK查询,我不知道如何在每次不触发查询的情况下访问状态。

我用我的customBaseQuery创建了一个api

const emptySplitApi = createApi({
reducerPath: 'api',
baseQuery: customBaseQuery(),
endpoints: () => ({})
})

然后注入我的端点。

export const userApi = emptySplitApi.injectEndpoints({
endpoints: (builder) => ({
getUser: builder.query<User, GetUserInput>({
query: (options) => ({
query: getUserQuery,
options: options
})
})
}),
overrideExisting: true
})

并配置了存储:

const persistConfig = {
key: 'root',
storage: AsyncStorage
}
const reducers = combineReducers({
[emptySplitApi.reducerPath]: emptySplitApi.reducer
})
const persistedReducer = persistReducer(persistConfig, reducers)
export const store = configureStore({
reducer: persistedReducer,
middleware: (getDefaultMiddleware) => getDefaultMiddleware({ serializableCheck: false }).concat(emptySplitApi.middleware)
})

当我打开应用时,我使用redux生成的钩子调用getUser API。这是有效的,我得到了预期的响应。

const { data } = useGetUserQuery(input)

现在,我需要访问用户数据在我的应用程序的另一个屏幕没有调用API再次(redux应该缓存/持久化的数据),但我不能管理访问状态。

我试了如下:

const { getUser } = useAppSelector((state) => state.api.queries)

,但getUser总是未定义。然而,如果我打印整个state,我可以看到数据。我如何从应用程序中的任何地方访问状态,而无需再次调用API ?

只要在任何地方使用你的useGetUserQuery(yourOptions)。无论您使用它多少次,它将只向服务器发出一个请求,并且数据将在任何地方可用。

相关内容

  • 没有找到相关文章

最新更新