vue store获取值时 Computed property "activeTag" was assigned to but it has no setter.


出现原因:
  element-ui中 el-tab绑定的值在切换tab时会自动修改
  而activeTag是从store中获取的值,不能直接修改
  要添加给它绑定上set  
 
<el-tabs class="tags" v-model=" activeTag" type="card" closable @tab-click="handleClick" @tab-remove="handleRemove">
  <el-tab-pane
    :key="item.id"
    v-for="item in tags"
  >
  </el-tab-pane>
</el-tabs>
 
报错情况
computed: {
  ...mapState({
    tags: state => state.tags,
    activeTag: state => state.activeTag
  }),
}
 
修改后:
computed: {
  ...mapState({
    tags: state => state.tags,
  }),
  activeTag: {
    get () {
      return this.$store.state.activeTag;
    },
    set (val) {
      this.$store.dispatch('changeActiveTag', val);
    }
  }
},


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM