2 回答

TA貢獻1831條經驗 獲得超9個贊
我先刪除了這些地方。然后我根據位置數組是否為空來過濾事件。之后,我返回了狀態(tài)。
case "deleteItems":
const eventsPostDeletingPlaces = state.events.map(event => {
const place = event.place.find(x => x.id === action.id);
if (place) {
return {
...event,
place: event.place.filter(x => x.id !== action.id)
};
}
return event;
});
const eventsWithPlaces = eventsPostDeletingPlaces.filter((each) => each.place.length);
return {
...state,
events: eventsWithPlaces
}
在此處檢查已編輯的沙箱

TA貢獻1831條經驗 獲得超4個贊
基本上與第一個答案中的邏輯相同,但用a和 extrareduce代替。只是一種選擇。mapfilter
case "deleteItems":
return {
...state,
events: state.events.reduce((events, event) => {
const place = event.place.find(x => x.id === action.id);
if (place) {
event.place = event.place.filter(x => x.id !== action.id);
}
if (event.place.length > 0) {
events.push(event);
}
return events;
}, [])
};
添加回答
舉報