嵌套Vuedraggable结合Vuex:如何用计算属性更新子项状态?
问题描述
我的组件结构和嵌套vuedraggable官方示例一致,项目中使用Vuex,希望通过带getter/setter的计算属性更新行内的items数组,进而触发Vuex状态更新。目前已实现行级别的getter/setter计算属性来更新状态,但子组件(items)的计算属性无法传递参数以识别所属行,想请教针对这种「行包含items数组」的结构,如何结合Vuex实现需求?
已实现的解决方案
采纳建议后,通过传递包含多数据的对象实现了需求,以下是具体实现方案:
组件代码
methods: { ...mapActions('builder', ['setSteps']), }, computed: { ...mapGetters('builder', ['getSteps']), steps: { get() { return this.getSteps(this.stageID); }, set(val) { this.setSteps({steps: val, stageID: this.stageID}); } }, },
Vuex Getter
getSteps: (state) => (stageID) => { return state.stages.find(stage => stage.id === stageID).steps; },
Vuex Mutation(Action仅提交该Mutation,未列出)
SETSTEPS(state, payload) { state.stages.find(stage => stage.id === payload.stageID).steps = payload.steps; }
该方案可实现数据同步与响应式,且通过Mutation可追踪状态变化以支持撤销/重做功能,完全满足需求。
内容的提问来源于stack exchange,提问作者supremesector
相关产品推荐
相关产品推荐

