簡體   English   中英

在Redux中將項目添加到數組的元素

[英]Add item to an element of an array in Redux

我正在嘗試讓我的redux減速器執行以下操作:

實現

但是,我輸出以下內容:

目前的問題

以下是我用來嘗試此操作的代碼。 我試圖將action.userHoldings包含在coinData數組中,但這也最終會出現在不同的行而不是同一對象內。 我的目標是使coinData的第0個元素內的userHoldings與第一個圖像中的投資組合數組中的userHoldings相似。

import * as actions from '../actions/fetch-portfolio';

const initialState = {
  coinData: [],
  userHoldings: ''
};

export default function portfolioReducer(state = initialState, action) {
  if (action.type === actions.ADD_COIN_TO_PORTFOLIO) {
    return Object.assign({}, state, {
      coinData: [...state.coinData, action.cryptoData],
      userHoldings: action.userHoldings
    });
  }
  return state;
}

我想你想做這樣的事情。

    return Object.assign({}, state, {
      coinData: [ {...state.coinData[0],cryptoData: action.cryptoDatauserHoldings: action.userHoldings}, ...state.coinData.slice(1) ],

    });
  }

slice(1)將獲取除第0個元素之外的所有元素。 對於第一個元素,您可以按自己喜歡的方式構造對象。 這應該可以解決問題。 Slice會返回一個新的數組,這與拼接/推入或其他在變徑器中安全使用的數組不同。 :)

暫無
暫無

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

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