javascript - Vue JS 中的反应性来存储所做的所有更改?
问题描述
我正在尝试将单独的对象存储到一个数组中,问题是我不确定如何将先前的输入也存储起来——我的数据被覆盖了。我包含了一个简短的问题记录,希望能让事情变得清晰:https ://vimeo.com/306470918
这是代码的小提琴: https ://jsfiddle.net/h64wafkp/46/
我可以将所有内容都推送到现有数组中,但这一切都是错误的格式,而且我坚持使用数组内部数组类型的格式,这会使事情变得混乱..知道如何解决这个问题吗?我想保持格式
[
{
"id": 3,
"user_id": 2, // notice id is user 2
"date": "2018-12-04",
"duration": 10
},
{
"id": 4,
"user_id": 1, // another user id in the same array
"date": "2018-12-13",
"duration": 41
},
]
并不是
[
[
{
"id": 2,
"user_id": 1,
"date": "2018-12-03",
"duration": 13
},
{
"id": 1,
"user_id": 1,
"date": "2018-12-02",
"duration": 13
},
]
]
如果我做类似的事情Object.assign({}, object1, object2)
,那不会将所有内容存储在一个大数组中,而是存储在一个大对象中,所以我也不能这样做。有任何想法吗?
解决方案
如果我理解你的问题是正确的,你需要将所有当前设置的时间读入一个数组。在你的小提琴中,你在最后一行this.newHours = user.hours
,只返回当前用户的时间。
如果您想阅读所有用户的所有时间,您需要将它们全部加起来 - 我建议使用reduce
,导致这一行:
this.newHours = this.users.reduce((hours, user) => [...hours, ...user.hours], []);
将 a 添加4
到 12 月 5 日的输入中nas
,将导致:
[
{
"id": 2,
"user_id": 1,
"date": "2018-12-03",
"duration": 13
},
{
"id": 1,
"user_id": 1,
"date": "2018-12-02",
"duration": 13
},
{
"id": 3,
"user_id": 2,
"date": "2018-12-04",
"duration": 10
},
{
"id": 4,
"user_id": 2,
"date": "2018-12-13",
"duration": 41
},
{
"user_id": 2,
"date": "2018-12-05",
"duration": "4"
}
]
推荐阅读
- javascript - 当我传入变量参数时,新日期返回“无效日期”
- c# - c#在2个按钮之间画线
- excel - 查找下一个空行并将数据写入其中
- python - pickle.load(p) 与 pickle.load(urllib.open(link)) 的区别
- django - Django:NOT NULL 约束失败:Cart.cart_id
- r - 如何修改下面的代码以呈现三个估计器的偏差?
- css - 在 React 组件中的 JS 中使用 CSS 中的 calc 函数
- performance - 快速应用程序开发(RAD 模型)
- python-3.x - 如何从一个类中检索条目输入并从另一个类中使用它?(蟒蛇3.7.1)
- prolog - 如何在 Prolog 中打乱动态事实?