我正在努力了解如何动态创建和填充键:使用Vue / Vuex在我的状态下的对象中创建值对,下面是一个示例:
dataObject: {}
(处于状态),以及创建新的key:value对的变异:
setdataObjectProps: (state, payload) => {
for (let [key, value] of Object.entries(
state.dataObject
)) {
if (key == payload[0]) {
dataObject.total_operation_time = payload[1];
dataObject.machine_name = payload[2];
}
}
},
此解决方案有效,但是key:value对应该已经存在于对象中(我已将它们设置为空字符串)。
我尝试像这样使用Vue.set()
:
Vue.set(dataObject.total_operation_time, payload[1]);
Vue.set(dataObject.machine_name, payload[2]);
但是,如果我正确理解的话,我希望了解第二个参数就是索引/名称,因此我一直在努力使其工作。有人可以像我五岁时那样解释,而不必先在对象中创建key:value对吗? 提前致谢! 附言它们还必须是反应性的。
答案 0 :(得分:1)
Vue set应该仅以错误的方式使用才能完成工作:
向反应对象添加属性,确保新属性为 也是反应性的,因此触发视图更新。这必须用于添加新 属性,因为Vue无法检测到正常属性 附加内容(例如this.myObject.newProperty ='hi')。
但是函数参数看起来像这样
- {对象|数组}目标
- {string |数字} propertyName / index
- {any}值
https://vuejs.org/v2/api/#Vue-set
您的情况应该是:
Vue.set(state.dataObject, 'total_operation_time', payload[1]);
Vue.set(state.dataObject, 'machine_name', payload[2]);