首页 > 解决方案 > Redux 更新数组内的数组

问题描述

目前我有这样的商店状态:

const initState = [
  devices: {
    id: 0,
    data: []
  }
]

我想在数据数组中插入一个字符串。如果数组达到一定长度,清除它。我怎样才能做到这一点?这是我目前拥有的,但它不起作用

return state.map((device) => 
            {
                if (device.instanceId !== action.payload.instanceId)
                {
                    return device;
                }
                else
                {
                    if (device.bytestreamData.length < CACHE_SIZE)
                    {
                        var newArray = [...device.bytestreamData];
                        newArray.push(action.payload.bytestreamData);
                        return newArray;
                    }
                    else 
                    {
                        var newArray = [...device.bytestreamData];
                        newArray.length = 0;
                        newArray.push(action.payload.bytestreamData);
                        return newArray;
                    }
                }
            }); 

非常感谢

标签: javascriptredux

解决方案


我假设您想在达到数组的最大大小时将新字符串添加到空数组中

  if (device.bytestreamData.length === CACHE_SIZE) {
    var newArray = [];
    newArray.push(action.payload.bytestreamData);
    return newArray;
  } else {
    var newArray = device.bytestreamData.slice();
    newArray.push(action.payload.bytestreamData);
    return newArray;
  }

推荐阅读