Vue.js Vuex操作以深层分层数据为目标?

Vue.js Vuex操作以深层分层数据为目标?,vue.js,vuex,Vue.js,Vuex,是否可以以某种方式构造vuex,使我可以执行类似于建筑物[0]。公寓[1]。房间[2]。调度('paint','white') 如果不是的话,执行一项针对州内深层事物的行动的方法是什么 像这样的全局操作。$state.dispatch('changeRoomColor',{buildingId,apartmentId,roomId,color:'blue'})对我来说似乎不合适。你想做什么,你想传递一个深嵌套的变量吗?我的应用程序在很多级别上嵌套了对象。我正在尝试一些事情,比如加载和更新这些深度

是否可以以某种方式构造vuex,使我可以执行类似于
建筑物[0]。公寓[1]。房间[2]。调度('paint','white')

如果不是的话,执行一项针对州内深层事物的行动的方法是什么


这样的全局操作。$state.dispatch('changeRoomColor',{buildingId,apartmentId,roomId,color:'blue'})
对我来说似乎不合适。

你想做什么,你想传递一个深嵌套的变量吗?我的应用程序在很多级别上嵌套了对象。我正在尝试一些事情,比如加载和更新这些深度嵌套对象的状态。该应用程序已经在vueify模块中,并且一直在通过有点混乱的道具传递数据。react社区的人建议对数据进行规范化。我将查找一个链接,而不是像您这样传递一条长路径,您将传递一个房间id。
this.$state.dispatch('changeRoomColor',{roomId,color:'blue'})
然后您将构造您的状态,如
{buildings:[]、partments:[]、rooms:[…]},并使用getter返回非规范化的结构。是的,所有操作都是在顶层定义的。任何描述需要更改的内容的信息都必须在操作的有效负载中传递。我确实像你那样做过,但我的案例相对简单。如果我有更复杂的东西,我肯定会考虑规范化我的vuex存储。@CodinCat是的,我使用的是模块,但问题是针对深度嵌套在状态对象中的对象。所以现在我使用了名称空间模块,比如
this.$store.dispatch('rooms/update',payload)但要访问“公寓”下的特定房间,我必须指定公寓和建筑。相反,我尝试上面建议的规范化方法,只提供有效负载中房间的id。