feat: 之前的防重复逻辑 !subscriptionInfo.type 永远为 false(因为初始值是 free),导致订阅 API 从不被调用
This commit is contained in:
@@ -71,6 +71,7 @@ const subscriptionSlice = createSlice({
|
||||
},
|
||||
// 加载状态
|
||||
loading: false,
|
||||
loaded: false, // 是否已加载过(用于防止重复请求)
|
||||
error: null,
|
||||
// 订阅 Modal 状态
|
||||
isModalOpen: false,
|
||||
@@ -104,8 +105,8 @@ const subscriptionSlice = createSlice({
|
||||
end_date: null
|
||||
};
|
||||
state.loading = false;
|
||||
state.loaded = false; // 重置已加载标记,下次登录时重新获取
|
||||
state.error = null;
|
||||
logger.debug('subscriptionSlice', '重置订阅信息为免费版');
|
||||
},
|
||||
},
|
||||
extraReducers: (builder) => {
|
||||
@@ -118,6 +119,7 @@ const subscriptionSlice = createSlice({
|
||||
// fetchSubscriptionInfo - fulfilled
|
||||
.addCase(fetchSubscriptionInfo.fulfilled, (state, action) => {
|
||||
state.loading = false;
|
||||
state.loaded = true; // 标记已加载
|
||||
state.info = action.payload;
|
||||
state.error = null;
|
||||
})
|
||||
@@ -136,6 +138,7 @@ export const { openModal, closeModal, resetToFree } = subscriptionSlice.actions;
|
||||
// 导出 selectors
|
||||
export const selectSubscriptionInfo = (state) => state.subscription.info;
|
||||
export const selectSubscriptionLoading = (state) => state.subscription.loading;
|
||||
export const selectSubscriptionLoaded = (state) => state.subscription.loaded;
|
||||
export const selectSubscriptionError = (state) => state.subscription.error;
|
||||
export const selectSubscriptionModalOpen = (state) => state.subscription.isModalOpen;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user