From 3f8477aad67961f5059d5265f2541e7b53395794 Mon Sep 17 00:00:00 2001 From: shixiaohua Date: Wed, 13 Mar 2024 16:49:51 +0800 Subject: [PATCH] =?UTF-8?q?feat:redux=E4=BD=BF=E7=94=A8map=E6=9C=89?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E6=94=B9list?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- elsrc/sync/tencent/UploadUtils.js | 8 ++++++-- src/redux/dirMessage_reducer.js | 32 ++++++++++--------------------- 2 files changed, 16 insertions(+), 24 deletions(-) diff --git a/elsrc/sync/tencent/UploadUtils.js b/elsrc/sync/tencent/UploadUtils.js index 47f55fe..95dc89b 100644 --- a/elsrc/sync/tencent/UploadUtils.js +++ b/elsrc/sync/tencent/UploadUtils.js @@ -73,8 +73,12 @@ class UploadUtils { // 文件存在,比较MD5值 let onlineMd5= data.ETag.replaceAll('"',"") let fileMd5 - if (dirMessage&&dirMessage.data&&dirMessage.data.activeFile) { - fileMd5= dirMessage.data.activeFile.fileMd5; + if (dirMessage&&dirMessage.data) { + console.log("dirMessage.data",JSON.parse(dirMessage.data,[])) + let find = JSON.parse(dirMessage.data,[]).find(file=>file.fileId===activeFile||file.filePath===activeFile); + if (find){ + fileMd5= find.fileMd5; + } } if (!fileMd5){ fileMd5=md5(readFileSync(activeFile).toString()) diff --git a/src/redux/dirMessage_reducer.js b/src/redux/dirMessage_reducer.js index 068a85a..ebfe5c9 100644 --- a/src/redux/dirMessage_reducer.js +++ b/src/redux/dirMessage_reducer.js @@ -26,7 +26,7 @@ export const dirMessageSlice = createSlice({ name: 'dirMessage', initialState: { // 暂时只存储文件信息,不存贮文件夹信息。 - data: new Map([['root','']]), + data: [], dirTree:new FileTree("root","/root",true,[],"root",undefined) }, reducers: { @@ -38,7 +38,7 @@ export const dirMessageSlice = createSlice({ newFileAdd :(state,action)=>{ console.log("dirMessage:newFileAdd", state, action) insertNode(state.dirTree,action.payload) - state.data.set(action.payload.fileId?action.payload.fileId:action.payload.filePath,action.payload) + state.data.push(action.payload) }, dirRemove:(state,action)=>{ console.log("dirMessage:dirRemove", state, action) @@ -73,16 +73,13 @@ export const dirMessageSlice = createSlice({ updateNode(state.dirTree, {"filePath":action.payload.filePath}, {"fileMd5":action.payload.fileMd5}) - console.log("state.data",...state.data) let fileId = action.payload.fileId?action.payload.fileId:action.payload.filePath; - if (state.data.fileIdKey){ - state.data.fileIdKey.fileMd5=action.payload.fileMd5 + let find = state.data.find(file=>file.fileId===fileId||file.filePath===fileId); + if (find){ + find.fileMd5=action.payload.fileMd5 }else { - let newMap = new Map(); - state.data.forEach((value, key) => { - newMap.set(key, value); - }); - newMap.set(action.payload.filePath,{ + + state.data.push({ fileTitle:getFileNameByPath(action.payload.filePath), fileName:getFileFullNameByPath(action.payload.filePath), fileDir:false, @@ -91,17 +88,7 @@ export const dirMessageSlice = createSlice({ fileId:fileId, fileMd5:action.payload.fileMd5 }) - state.data=newMap } - state.data.set(action.payload.filePath,{ - fileTitle:getFileNameByPath(action.payload.filePath), - fileName:getFileFullNameByPath(action.payload.filePath), - fileDir:false, - children:[], - filePath:action.payload.filePath, - fileId:fileId, - fileMd5:action.payload.fileMd5 - }) }, dirFileAdd:(state,action)=>{ console.log("dirMessage:dirFileAdd", state, action) @@ -112,10 +99,11 @@ export const dirMessageSlice = createSlice({ "fileName": fileName, "filePath": filePath, "dirFlag": false, - "children": [] + "children": [], + "fileId":filePath } insertNode(state.dirTree,fileMessage) - state.data.set(action.payload.fileId?action.payload.fileId:action.payload.filePath,fileMessage) + state.data.push(fileMessage) }, dirDirAdd:(state,action)=>{ console.log("dirMessage:dirDirAdd", state, action)