我在我的反应原生项目中使用 Redux RTK 查询,我无法弄清楚如何在不每次触发查询的情况下访问状态。
我用我的创建了一个 apicustomBaseQuery
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 的情况下从应用程序的任何位置访问状态?