第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

當相應項中沒有值時,從 Redux 初始狀態(tài)中刪除完整對象

當相應項中沒有值時,從 Redux 初始狀態(tài)中刪除完整對象

嗶嗶one 2022-10-27 16:51:33
在我的減速器中,我的初始狀態(tài)如下所示:    const initialState = {        isLoading: false,        events: [        {        year: 2021,        place: [        {          id: 1,          name: "BD"        },        {          id: 2,          name: "BD Test"        }      ]    },    { year: 2020, place: [{ id: 3, name: "AMS" }, { id: 4, name: "AMS TEST" }] }  ]};我一直在嘗試實現(xiàn)刪除操作的功能。因此,當單擊按鈕時,將調度“deleteItems”操作,該操作將從place. 此功能工作正常。但是,events如果place.這是我已經嘗試過的,但它只是刪除了個人place. place但是,我需要在這里編寫當變?yōu)榭諘r刪除整個項目的邏輯。case "deleteItems":  return {    ...state,    events: 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;    })  };因此,在修改后,狀態(tài)將如下所示:(當 2021 年沒有值時)const initialState = {  isLoading: false,  events: [    { year: 2020, place: [{ id: 3, name: "AMS" }, { id: 4, name: "AMS TEST" }] }  ]};有誰知道如何做到這一點。任何幫助將不勝感激。在此先感謝。Demo可以從這里看到
查看完整描述

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

      }

在此處檢查已編輯的沙箱



查看完整回答
反對 回復 2022-10-27
?
慕容708150

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;

    }, [])

  };

密碼箱


查看完整回答
反對 回復 2022-10-27
  • 2 回答
  • 0 關注
  • 104 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號