javascript - 在反应中管理数组道具
问题描述
我有一个反应应用程序,我发现了一个错误,我正在过滤一个数组以搜索用户选择的当前项目,然后我将用它做一些事情......但是,不知道该过滤器函数返回对数组项目的引用,因此,我对所选项目所做的每一次更改都会对 prop 数组执行相同的操作。
const pippo = maledettoArray.filter(item => item.id === idInfame)[0];
如何过滤道具数组以获取特定项目而不更改它?
解决方案
You can use find
method instead of filter
which returns first match and exits the loop.
const pippo = maledettoArray.find(item => item.id === idInfame)
To create shallow copy of the object you can use Object.assign
or spread syntax.
const clone = {...pipo}
If you want to create deep copy of the nested object then you could use Lodash _.cloneDeep(value)
method.
推荐阅读
- php - Laravel Eloquent Method Chaining on Artisan Tinker
- javascript - 中心对齐猫头鹰旋转木马项目
- mongodb - 在 Spring Data MongoDB 聚合 $project 中表达嵌套字段
- javascript - 我可以从 double v-for 获取对象中的数据吗
- python-3.x - 如何使用 python-telegram-bot 获取最新的 message_id?
- graphql - 如何过滤graphQL一对多关系中的查询?
- python - 如何识别段落中的一系列数字
- ios - 单个 WatchOS App 和 iOS App 之间的通信
- r - 查找带有日期的每年的最小值和最大值
- r - 如何使用 R 考试在 Rnw 文件中进行评论