【问题标题】:more data passed in state, it is not taken correctly状态中传递的数据更多,未正确获取
【发布时间】:2021-03-08 03:06:48
【问题描述】:

我有现成的常量需要保存在状态中:

 const day = "25/02/2020";
 const timeStart = "08:00";
 const timeEnd = "00:00";

在我的 vuex 文件中,我有这个:

  export default new Vuex.Store ({
    state: {
       dateSelected: [], // selected date
    },
    mutations: {
      saveDateSelected (state, [newDateSelected, newTimeStart, newTimeEnd]) {
         const newobject = {
            DateStart: newDateSelected + "-" + newTimeStart,
            DateEnd: newDateSelected + "-" + newTimeEnd,
         };

         state.dateSelected.push (newobject);
      }
    },

在我的组件中,我会通过以下方式调用数据:

    this.saveDateSelected (day, timeStart, timeEnd);

如果我执行“console.log (this.dateSelected);”结果给了我:

   DateEnd: "2 - /"
   DateStart: "2 - 5"

什么时候应该给我:

  DateEnd: "25/02/2020 - 00:00"
  DateStart: "25/02/2020 - 08:00"

【问题讨论】:

    标签: javascript vue.js state vuex mutation


    【解决方案1】:

    您不应该直接从组件调用存储突变方法。改为提交 this.$store.commit('saveDateSelected, [day, timeStart, timeEnd])

    还要确保通过组件的computed 属性正确访问组件中的 vuex 存储。

    【讨论】:

    • 非常感谢,现在可以使用了!最后一件事,你能告诉我为什么在控制台上它先打印 dateEnd 然后再打印 dateStart 吗?如果你注意到我先输入了 dateStart 在突变中...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-05
    • 2014-09-07
    • 2018-10-20
    • 1970-01-01
    • 2020-01-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多