我有一个包含商店的应用程序:
const initialState: GlobalState = {
data: {
isOnboardingCompleted: 'unknown',
isEnvironmentReady: false,
environmentConfig: ProdEnvConfig,
// ...
},
}
字符串
键environmentConfig
包含一个存储baseUrl的对象。环境配置可以在应用程序运行时更改。用户可以选择不同的。
创建API时:
export const BaseApi = createApi({
reducerPath: 'base-api',
baseQuery: fetchBaseQuery({
baseUrl: '',
}),
endpoints: builder => ({
getStudents: builder.query({
query: param => {
return "/students"
},
}),
}),
});
型
如何设置baseUrl,同时侦听environmentConfig
的更改并从存储中重新设置baseUrl?
我正在想象一些像这样的伪代码,我似乎无法使其工作:
const listen = () => {
const config = store.getState().global.data.environmentConfig
BaseApi.setBaseUrl(config.baseUrl)
}
store.subscribe(listen)
型
如何实现这一点有什么想法吗?
1条答案
按热度按时间368yc8dk1#
我相信你可以围绕
fetchBaseQuery
函数编写一个小的 Package 器,并传入一个存储在Redux商店中的baseUrl
。示例如下:
个字符