尝试拼接Vuex数组时的无限递归

时间:2018-11-23 15:40:06

标签: javascript vuex

我有一个{@ 3}的codeandbox设置,应该打印三个日期。

最相关的代码段是:

df.loc[condition, "store_price"] = df.loc[condition, "price"]

我收到的具体错误消息是import Vue from "vue"; import App from "./App"; import Vuex from "vuex"; Vue.use(Vuex); const { DateTime } = require("luxon"); Vue.config.productionTip = false; var store = new Vuex.Store({ debug: true, state: { dateTimes: [ { startTime: DateTime.local(), meta: "test" }, { startTime: DateTime.local().plus({ days: 2 }), meta: "test" } ] }, mutations: { addItem(state) { var test = { startTime: DateTime.local().plus({ days: 1 }), meta: "test" }; for (var i = 0; i < state.dateTimes.length; i++) { if (state.dateTimes[i].startTime > test.startTime) { state.dateTimes.splice(i, 0, state.dateTimes); } } state.dateTimes.push(test); } } }); new Vue({ el: "#app", store: store, components: { App }, template: "<App/>", created: function() { this.$store.commit("addItem"); } });

在Vuex数组中拼接项目的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

这是问题state.dateTimes.splice(i, 0, state.dateTimes);,因为切片操作尚未影响数组,所以您总是在添加与state.dateTimes相同的日期,因为切片操作尚未影响数组。

简单的解决方案是将其删除为state.dateTimes.splice(i, 0, test);,这可能不是您想要的解决方案,但是它将解决最大调用堆栈错误