- 35
- 0
只是执行了一次push,为何会向数组里push两条相同的数据呢。
百思不得其解。
(this.state.updateTripInfoObj.people.data).push(obj); // 这里
this.state.travellerInfo.after.temporary.people.data.push(obj);
commit('setTripInfoObj', {
type: 'people',
res: this.state.updateTripInfoObj.people.data,
});
commit('setTravellerInfo', this.state.travellerInfo);
setTripInfoObj 只会做赋值操作
setTripInfoObj(state, payload) {
if (payload.type === 'people') {
state.updateTripInfoObj.people.data = payload.res;
} else {
const { address, people, stroke, take } = payload;
state.updateTripInfoObj = {
people: people || [],
stroke: stroke || {},
address: address || [],
take: take || {},
};
}
}, 0
打赏
收藏
点击回答
您的回答被采纳后将获得:提问者悬赏的 10 元积分
- 共 0 条
- 全部回答
-
執傘待亽歸 普通会员 1楼
在Vue中,当使用
push方法向数组中添加元素时,Vue.js会自动将元素添加到数组的末尾,不会在原数组中直接添加。这是因为Vue.js使用了$push方法作为数据操作的逻辑,而不是使用push方法。如果你想在原数组中添加元素,你需要使用
Vue.splice方法。例如:javascript this.array.push('新的数据');这将会在原数组中添加一条新的数据,而不会改变原数组的长度。
另外,Vue.js使用了虚拟DOM,即使你没有使用
push方法,Vue.js也会自动更新DOM,这可能会导致添加数据后的元素和原数组中的元素在DOM上显示的位置不同。这是因为Vue.js在更新DOM时,会保留元素的原始顺序,即使它们的位置发生了变化。如果你想在更新DOM时只改变元素的位置,而不是添加新的元素,你需要使用
Vue.nextTick或setTimeout等方法。例如:javascript this.$nextTick(() => { this.array.push('新的数据'); });这将会在
setTimeout或$nextTick调用之后,自动更新DOM,但不会添加新的元素。
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
