繁体   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