Vue / изменения состояния Vuex, не влияющие на родителей - PullRequest
0 голосов
/ 28 марта 2020

У меня есть вход в дочерний компонент. Его значение там меняется и сохраняется в состоянии. Родительский компонент использует это значение для некоторой логики c. Когда я изменял значение в потомке, я думал, что родитель обнаружит изменение состояния. Я нахожу, что только когда родитель обновляется, он получает измененные данные.

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

1 Ответ

0 голосов
/ 28 марта 2020

При изменении дочернего объекта в хранилище Vuex, иногда Vue отображает это неправильно. Я столкнулся с этой проблемой, когда я пытаюсь наблюдать объект хранилища, и значение некоторого дочернего ключа объекта изменяется. Я решил эту проблему, сделав копию всего объекта;

Объявите эту функцию клонирования глобально,

_cloneObj: function(obj){
   return JSON.parse(JSON.strigify(obj));
}

Теперь используйте эту функцию при изменении значения в хранилище, например

CHANGE_STORE: (state,newValue) =>{
   let obj =  _cloneObj(state.your_object); // this will give you clone of the store obkect
   obj.your_key = newValue; // change the value you want
   state.your_object = obj; // set the value back to store
}

Магазин будет рассматривать это как изменение всего объекта, и оно будет отражаться везде.

...