You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

嵌套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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 15:05:25