我有一个{@ 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数组中拼接项目的正确方法是什么?
答案 0 :(得分:2)
这是问题state.dateTimes.splice(i, 0, state.dateTimes);
,因为切片操作尚未影响数组,所以您总是在添加与state.dateTimes
相同的日期,因为切片操作尚未影响数组。
简单的解决方案是将其删除为state.dateTimes.splice(i, 0, test);
,这可能不是您想要的解决方案,但是它将解决最大调用堆栈错误