【问题标题】:Vue: Reacting to input change on array of inputs in v-forVue:对 v-for 中输入数组的输入变化做出反应
【发布时间】:2020-12-02 19:36:06
【问题描述】:

我有一个值数组,我将初始数据值list 设置为。我正在使用该列表在输入中呈现数组的值。我正在使用<input :value="element" /> 渲染v-for 中的输入值。我尝试使用v-model,但出现错误:

<input v-model="element">: You are binding v-model directly to a v-for iteration alias. This will not be able to modify the v-for source array because writing to the alias is like modifying a function local variable. Consider using an array of objects and use v-model on an object property instead.
    data() {
        let sizeFilterArray = this.$store.getters['main/getSizeFilters'];
        return {
            list: sizeFilterArray,
        }
    },

<draggable v-model="list">
   <div v-for="(element,index) in list" :key="index">
        <div class="element-box">
            <div class="element-input">
                <input :value="element" />
            </div>
        </div>
   </div>
</draggable>

【问题讨论】:

    标签: vue.js vuejs2 vuex


    【解决方案1】:

    错误指示您使用对象数组而不是值。所以,你可以修改为:

    <draggable v-model="list">
       <div v-for="item in list" :key="item.id">
            <div class="element-box">
                <div class="element-input">
                    <input v-model="item.value" />
                </div>
            </div>
       </div>
    </draggable>
    

    这假设您的 sizeFilterArray 是一个对象数组,例如 { id: 1, value: someValue }

    【讨论】:

    • 谢谢!我将后端的数组操作为对象数组,并且有效!谢谢!
    猜你喜欢
    • 1970-01-01
    • 2019-04-30
    • 2020-05-11
    • 2019-06-28
    • 2020-03-07
    • 2015-07-19
    • 1970-01-01
    • 2021-07-01
    • 2020-05-21
    相关资源
    最近更新 更多