瀏覽代碼

解决数据缓存问题

bill 3 年之前
父節點
當前提交
aee4ff47e4
共有 3 個文件被更改,包括 8 次插入7 次删除
  1. 5 3
      src/api/scene.ts
  2. 2 2
      src/hook/paging.ts
  3. 1 2
      src/store/scene.ts

+ 5 - 3
src/api/scene.ts

@@ -57,7 +57,7 @@ export interface ServeModelScene {
 export type Scenes = Scene[]
 // 获取场景列表
 export type GetSceneByTypeParams = PagingRequest<{type: SceneType, sceneName?: string, status?: QuoteScene['status']}>
-export const getSceneByType = async (data: GetSceneByTypeParams): Promise<PagingResult<Scene[]>> => {
+export const getSceneByType = async (data: GetSceneByTypeParams): Promise<PagingResult<Scene[]> & { type: SceneType }> => {
   if (data.type === SceneType.SWMX) {
     const modelScenes = await axios.post<PagingResult<ServeModelScene[]>>(
       MODEL_SCENE_LIST, 
@@ -72,10 +72,12 @@ export const getSceneByType = async (data: GetSceneByTypeParams): Promise<Paging
         status: scene.createStatus,
         type: SceneType.SWMX,
         rawType: scene.modelDateType,
-      }))
+      })),
+      type: data.type
     }
   } else {
-    return await axios.post<PagingResult<Scenes>>(SCENE_LIST, data)
+    const res = await axios.post<PagingResult<Scenes>>(SCENE_LIST, data)
+    return { ...res, type: data.type }
   }
 }
 

+ 2 - 2
src/hook/paging.ts

@@ -52,9 +52,9 @@ export const usePaging = <T extends any[], R>(
 
 
 
-export const useThunkPaging = <T extends ParamsPagingRequest, R, U extends {}>(
+export const useThunkPaging = <T extends ParamsPagingRequest, R, K extends PagingResult<R>, U extends {}>(
   initParams: T | PagingRequest<T>,
-  asyncThunk: AsyncThunk<PagingResult<R>, PagingRequest<T>, U>
+  asyncThunk: AsyncThunk<K, PagingRequest<T>, U>
 ): UsePagingResult<[T], R> => {
   const initPaging: BasePagingRequest = {
     pageNum: initParams.pageNum || 1,

+ 1 - 2
src/store/scene.ts

@@ -36,9 +36,8 @@ const sceneSlice = createSlice({
       builder, 
       fetchScenes,
       (state, data) => {
-        const types = new Set(data.list.map(scene => scene.type))
         state.value = [
-          ...state.value.filter(scene => !types.has(scene.type)),
+          ...state.value.filter(scene => data.type !== scene.type),
           ...data.list
         ]
       }