我想在保持reactivity的同时使用spread操作符添加/删除对象属性。

在Vuex突变中,以下工作:

Vue.set(state.sportTypes.sports, sportName, sportProperties)


但是我想使用传播运算符并返回新对象。我将如何实现以下目标?

state.sportTypes.sports = {...state.sportTypes.sports, {sportName: sportProperties}}

最佳答案

您应该删除{sportName: sportProperties}的括号

这将起作用:

state.sportTypes.sports = { ...state.sportTypes.sports, sportName: 'football' }


但是我建议您声明所有可能的字段,而不是动态添加新属性,这样就无需使用Vue.set或spread运算符。

09-25 18:38