如何在 React Native 应用程序中使用 Redux RTK 访问状态
How to access the state using Redux RTK in react native app
我在我的 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 应该有 cached/persisted 数据)但我无法访问状态。
我尝试了以下方法:
const { getUser } = useAppSelector((state) => state.api.queries)
但 getUser
始终未定义。但是,如果我打印整个 state
我可以看到数据。
如何在不再次调用 API 的情况下从应用程序中的任何位置访问状态?
随处使用 useGetUserQuery(yourOptions)
。它只会向服务器发出一个请求,无论您使用它多少次,数据将随处可用。
我在我的 React Native 项目中使用 Redux RTK 查询,我不知道如何在每次不触发查询的情况下访问状态。
我用 customBaseQuery
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 应该有 cached/persisted 数据)但我无法访问状态。
我尝试了以下方法:
const { getUser } = useAppSelector((state) => state.api.queries)
但 getUser
始终未定义。但是,如果我打印整个 state
我可以看到数据。
如何在不再次调用 API 的情况下从应用程序中的任何位置访问状态?
随处使用 useGetUserQuery(yourOptions)
。它只会向服务器发出一个请求,无论您使用它多少次,数据将随处可用。