feat:redux使用map有问题改list

This commit is contained in:
shixiaohua 2024-03-13 16:49:51 +08:00
parent 3a688af342
commit 3f8477aad6
2 changed files with 16 additions and 24 deletions

View File

@ -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())

View File

@ -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)