我在子组件中有一个输入。其值在那里更改并存储在状态中。父组件将该值用于某些逻辑。当我更改孩子的值时,我以为父母会检测到状态变化。我只有在父母本身进行更新时才能找到更改后的数据。
我是Vue和状态管理的新手。我认为状态更改将在任何使用变量的地方(父母或孩子)立即反映出来。我有点以为状态就像无处不在的以太,如果将其映射/导入到一个组件中,它将渗透到一切。
答案 0 :(得分:0)
在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
}
商店会将其视为整个对象的变化,并将其无处不在。