我有一个对象,它有两个层次的深度与其他两个对象。
$store.state.object.level1.level2
第一层和第二层都是动态的,我需要检测它们何时被定义在一个对象上。v-if
:
<Component v-if="$store.state.object.level1 && $store.state.object.level1.level2">
语句在Level1被定义时有效,但在Level2被定义时无效。
谁能解释一下这是为什么?
不管是好是坏(可能更坏),我已经停止了对状态的更新。state.x = newX
并开始使用 Vue.set(state, 'x', newX)
这解决了我的所有问题,让我的观点更新,但不知何故,我有一种感觉,有一个比这更好的解决方案。
所以在你的情况下,我会写这个
Vue.set($store.state.object.level1, 'level2', newValueForLevel2)