Vuex - преобразовать объект хранилища без изменения оригинала - PullRequest
0 голосов
/ 09 июля 2020

Я пытаюсь скопировать объект хранилища для локального преобразования, но моя функция изменения также изменяет исходный объект хранилища. Я использую ...mapState["storeObject"]

Это в основном то, что происходит:

state.storeOjb = "original value" 
this.local = storeOjb ;
this.local = "altered version of storeOjb"

storeOjb === "original value" // false -- why?

Ответы [ 2 ]

1 голос
/ 09 июля 2020

Я не совсем уверен, в чем ваша проблема. Но вы можете удалить мутацию объекта с помощью

this.local = Object.assign({}, storeObj)

Vue

В Vue JS, для локальных изменений вы можете использовать вычисленное свойство storeObj.

computed: {
  localValue: function() {
    return { ...storeObj, newChange: true }
  }
}
0 голосов
/ 09 июля 2020

Он передал ссылку на объект, так как ваш код this.local = storeOjb Когда вы изменяете значение this.local, state.storeOjb также изменяется. Таким образом, вы можете изменить свой код, например this.local = storeOjb + "", чтобы мы могли копировать только значение, но не ссылку на объект.

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