Почему не изменяются данные в объекте после 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
  • Вопрос задан
  • 63 просмотра
Решения вопроса 1
Ni55aN
@Ni55aN
Внутренние свойства disabledColumnsData не реактивны. Нужно менять их через
Vue.set(this.disabledColumnsData, result.name, result.disabled)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы