Vue.js动态地将JSON映射到没有vue的类。在Vuex存储中直接赋值

问题描述 投票:0回答:1

这是一个简单的问题:“我可以将json响应映射到一个类,而无需使用vue.set,或者通过将参数传递给类,直接分配它们来专门枚举字段吗?”在我看来这是可能的。

在React中,我可以将数据映射到类。

-谢谢

所以:a)我可以在vue / vuex中执行地图吗? (假设语法正确?)b)我是否坚持使用vue.set或手动分配? c)如果没有比Vue-Model更好的包装吗?

谢谢

返回的数据:

{
    abc: "Some Text", 
    def: 9999.999, 
    ghi: false
}

需要的字段集:

function anItem(payload){
  this.abc = "";
  this.def = 0;
  this.ghi = false;
  this.notices = [];
  this.selected = false;
  this.is_updating = false;
}

变异者

const mutations = {

  setStuff (state, payload) {
    /*this.state.myList.items = payload;*/ <- this works, of course.

    this.state.mylist.items = payload.map(a => new anItem(a)) <-- syntax here?
  },

};
javascript vue.js vuejs2 vuex
1个回答
1
投票

在构造对象时,可以将参数用作初始值:

function anItem(payload){
  this.abc = payload.abc;  // changed this line
  this.def = payload.def;  // changed this line
  this.ghi = payload.ghi;  // changed this line
  this.notices = [];
  this.selected = false;
  this.is_updating = false;
}

然后,更改mutator以传递这样的参数:

const mutations = {

  setStuff (state, payload) {
    this.state.mylist.items = new anItem(payload);
  },

};
© www.soinside.com 2019 - 2024. All rights reserved.