Моя модель хранится в Vuex как массив объектов и индекс текущего элемента.Затем в моем компоненте я использую эти две информации, чтобы установить значение для множества входных данных для текущей модели из массива.
Моя проблема в том, что когда я устанавливаю значение для какого-либо поля (свойство текущего объекта из массива) и меняю индекс текущего элемента на другое, эта новая модель не имеет этого свойства в объекте (модельдинамический объект без предопределенных полей), поэтому старое значение остается на входе до тех пор, пока я не вернусь к индексу, где я установил это значение, а затем при переходе на другое оно исчезнет.
Store
const state = {
data: {
fields: [],
},
currentField: -1
}
const mutations = {
updatField (state, obj) {
state.data.fields[state.currentField][obj.attr] = obj.value
},
setCurrentField (state, value) {
state.currentField = value
},
}
Просмотр
<template>
<v-form ref="form">
<v-text-field v-for="attr in fieldsDefinition" :key="attr.label"
:value="field['attr'][attr.label]"
:label="attr.label"
@input="update(label)"
></v-text-field>
</v-form>
</template>
<script>
export default {
store,
components: { field },
mixins: [ fieldsDefinition],
data () {
return {
fieldsDefinition: this.getFieldsDefinition()
}
},
methods: {
update (attr) {
this.$store.commit(this.change, { attr, value: event.target.value })
},
select (index, type) {
this.$store.commit('setCurrentField', index)
}
}
computed: {
...mapState({
field: state => state.data.fields[state.currentField],
currentField: state => state.currentField
})
}
}
</script>
( this.getFieldsDefinition () возвращает определение отображаемых полей, содержит метку для поля и т. Д..)