Как скопировать значение из состояния Vuex в Data без изменения состояния Vuex при изменении скопированных данных? - PullRequest
0 голосов
/ 30 апреля 2020

Я пытаюсь редактировать форму. Поэтому я использую Vuex для хранения информации о форме, а сама форма находится внутри диалога vuetify внутри дочернего компонента. Я также использую реквизиты, чтобы открыть диалоговое окно vuetify, а также при отправке индекса.

Я установил для редактирования vue данные (tableUsulanTemp) со значением получателей vuex (tableUsulan) примерно так:

  props: {
    value: false,
    index: null
  },
  model: {
    prop: "value",
    event: "editClicked"
  },
  // set vue data with vuex getters
  watch:{
    value:function(value){
      if(value){
        this.tableUsulanTemp = this.tableUsulan[this.$props.index];
      }else{
        this.tableUsulanTemp = {};
      }
    }
  },
  computed: {
    //here is the vuex getters
    ...mapGetters(["tableUsulan"]),
    editOverlay: {
      get: function() {
        console.log(this.value);
        return this.value;
      },
      set: function(value) {
        console.log("edit button clicked");
        this.$emit("editClicked", value);
      }
    }
  },
  data() {
    return {
      // here is vue data where i put the getters to
      tableUsulanTemp:{},
    };
  },

разметка:

<v-text-field
    label="Name"
    v-model="tableUsulanTemp.name"
>

затем, когда пользователь отменит изменения, нажав кнопку «Отменить», он установит в диалоговом окне значение «ложь», которое вызывает наблюдателя (см. приведенный выше код) для сброса данных формы редактирования на пустой объект.

discard(){
 this.editOverlay = false;
}

но проблема в том, что данные не отбрасываются, а изменяются. Я настроил пользователя на изменение информации в данных vue, но, похоже, она также меняется в vuex. так что я думаю, что это связано сейчас? так как я могу получить его без связи? как я могу получить состояние vuex в данные vue без изменения значения vuex при изменении данных vue?

1 Ответ

0 голосов
/ 30 апреля 2020

Таким образом, решение состоит в том, чтобы разобрать объект в json и обратно

this.tableUsulanTemp = JSON.parse(JSON.stringify(this.tableUsulan));

здесь есть деталь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...