javascript - 如何在 Redux 中创建固定宽度的覆盖数组?
问题描述
我有一个 React 按钮,它在多文件上传时生成代码并将它们存储在 Redux 中,每次你删除一个文件时它都会添加新代码,这就是 3 次上传后状态的样子:
codes: ["a141", "a196", "a953"]
我想一次最多存储 3 个代码,如果用户一次上传 7 个文件,我想简单地移动 4 个第一个代码,这样最近的代码总是在数组的末尾。我知道我可以通过混合推动和移位或连接来实现这一点,但是我如何在不可变的 Redux 中实现这一点?我应该在减速机中这样做吗?现在我接受一切,像这样:
case "get_codes":
return {
...state,
codes: state.codes.concat(action.data.code),
};
tl;博士我如何限制 Redux 中数组中的项目数,我一直在谷歌搜索这个主题,但找不到任何具体的内容:/
解决方案
我想这就是你要找的
codes: [...state.codes.concat(action.data.code).slice(-3)]
这样,您可以创建一个包含新旧代码的新数组,然后获取列表中的前 3 个。
推荐阅读
- c++ - 如何进行线程安全的 shared_ptr 修改和访问?
- ios - CIImage 不会加载到表格视图单元格中
- javascript - 用户脚本无法识别 Windows 键码事件
- python - 通过 control-m 触发的 shell 脚本
- matplotlib - 获得在一个点上显示三个数量的图?
- c# - 使我的表单处于活动状态/显示在所有其他正在运行的应用程序的第一个位置
- flutter - 如何在 Flutter 中设置 layoutToLeft 或 toRight
- java - 是否有适用于每个类似日期时间模式的主日期时间模式
- azure-cosmosdb - Application Insights 能否使用 Direct 连接模式自动跟踪对 Cosmos Db 的查询?
- function - 术语未识别的 powershell