在商店突变中更新状态后,状态未在视图层更新-Vuex

时间:2020-02-20 06:21:29

标签: vue.js vuex

我正在使用Vuex突变来更改名为practices的数组的值。我将这种突变称为PracticeTree组件,其中包括practices的吸气剂。

 handleNodeClick(data, other) {
     this.expanded=data.namespace
     this.SET_PRACTICES(data.practices)
     console.log('practices as set in view layer: ')
     console.log(this.practices)
 },  

被称为的突变如下:

SET_PRACTICES(state, data){
    Vue.set(state.practices, data)
    console.log('practices as set in the store:' )
    console.log(state.practices)
},

我使用Vue.set而不是简单地更改状态,因为我认为当我在视图层上看到状态没有更改时可能会有所帮助-但这并没有。

以下是上述函数的输出:

practices as set in the store:
store.js?0571:100 (3) [{…}, {…}, {…}, "": (...), __ob__: Observer]
PracticeTree.vue?f108:95 practices as set in view layer: 
PracticeTree.vue?f108:96 []

如您所见,尽管商店更新了practices的值,但它在组件内没有变化。

有人对可能出什么问题有任何想法吗?

1 个答案:

答案 0 :(得分:0)

您使用的方法不正确。

enter link description here

SET_PRACTICES(state, data){
    Vue.set(state, 'practices', data)
    console.log('practices as set in the store:' )
    console.log(state.practices)
}