Почему не изменяются данные в объекте после emit?

У меня как было значение true в массиве, так она и остается, но по моей логике, она должна измениться
Вот мой пример
ModalComponent.vue
<template>
...
<div v-else class="row">
              <div class="col-sm-10">{{ field.label }}</div>
              <div class="col-sm-2"><input type="checkbox" v-model="field.disabled" @click="actionColumns(field.name, field.disabled)"></div>
            </div>
...
</template>

<script>
export default {
  props: ['item'],
  methods: {
    actionColumns(name, result){
      this.$emit('actionColumns', {name: name, disabled: result})
    }
  },
...
}
</script>


App.vue
methods: {
...
actionColumns(result) { // result = {name: "full_name", disabled: false}
            console.log(this.disabledColumnsData[result.name]); //ture
            this.disabledColumnsData[result.name] = result.disabled;
            console.log(this.disabledColumnsData[result.name]); //false
            console.log(this.disabledColumnsData); //  {full_name: true, ...}
          }
...
}

https://codesandbox.io/s/pyvjxxnnvj
  • Вопрос задан
  • 65 просмотров
Решения вопроса 1
Ni55aN
@Ni55aN
Внутренние свойства disabledColumnsData не реактивны. Нужно менять их через
Vue.set(this.disabledColumnsData, result.name, result.disabled)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы