【问题标题】:Use of v-model and v-for with array in Vuex state在 Vuex 状态下使用 v-model 和 v-for 与数组
【发布时间】:2018-10-02 16:55:31
【问题描述】:

我正在为选项卡式界面构建选项卡,用户可以在其中更改选项卡的标题。我想做的是这样的:

标记:

<div class="tabs" v-for="(tab, tabIndex) in tabs" :key="tab.id" >
  <input type="text" v-model:value="tabs(tabIndex)">
</div>

计算属性:

computed: {
  scenes2: {
    get(tabIndex){
      return this.$store.state.tabs[tabIndex].title
    },
    set(value, tabIndex){
      this.$store.dispatch('setTabTitle', {value: value, tabIndex: tabIndex} )
    },
  },
},

这当然行不通。在这里使用 v-model 的正确方法是什么,以便我可以将 v-model 与 Vuex 状态下 tabs 数组上的相关索引相关联?

【问题讨论】:

    标签: javascript vue.js


    【解决方案1】:

    我不会对数组和对象使用计算属性。

     <div class="tabs" v-for="(tab, tabIndex) in $store.state.tabs" :key="tab.id">
       <input type="text" :value="tab.title" @input="e => updateTabTitle(tabIndex, e)">
     </div>
    
    methods: {
      updateTabTitle(tabIndex, event) {
        this.$store.dispatch('setTabTitle', {value: event.target.value, tabIndex} )
      }
    }
    

    【讨论】:

    • 这行得通,谢谢。 可能与v-model有关吗?有没有首选的情况?
    • 可能使用 tabs 数组的本地副本(在数据中),然后对该数组进行深度观察以调度(整个数组的)更改
    猜你喜欢
    • 2021-08-21
    • 2020-09-10
    • 2020-07-18
    • 2019-08-06
    • 2018-11-03
    • 1970-01-01
    • 2017-04-16
    • 2022-01-08
    • 2021-02-09
    相关资源
    最近更新 更多