簡體   English   中英

如何通過 id 從 Redux 中的對象列表中僅更新一個 object?

[英]How to update just one object from a list of objects in Redux by id?

我在 React 中使用 Redux 構建了一個應用程序,在我的 state 中我有一個對象列表,我想通過唯一 ID 從該列表中更新一個 object。

我的 object 看起來像:

{
id: '',
title: '',
description: '',
label: '',
}

我的 state:

const initialState = {
    compare: dayjs().month(),
    savedEvents: [],
}

當我在該列表中推送一個新事件時,我使用:

case 'events/setNewEvent':
            return { ...state, savedEvents: [...state.savedEvents, action.payload] };

我的問題是我不知道如何編寫正確的代碼來通過從我的表單發送的 id 更新一個 object。

您可以使用數組方法mapspread operator的組合

function updateOne(array, obj) {
  return array.map((item) => {
    if (obj.id === item.id) {
    // update whatever you want
    return {...item, title: obj.title };
   } else {
    return item;
   }
 })
}

減速器:

case 'events/setNewEvent':
   return { 
    ...state, 
    savedEvents: updateOne(state.savedEvents, action.payload) 
  };

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM