代码之家  ›  专栏  ›  技术社区  ›  Boris K

vuex:状态更新,但computed属性不更新

  •  2
  • Boris K  · 技术社区  · 8 年前

    我有一个组件,它从存储中获取一个名为“endpoints”的属性,并对其进行轻微调整…

    computed: {
                ...mapState(['endpoints']),
                adjustedEndpoints () {
                    if (this.endpoints){
                        return this.endpoints.map(x => {
                            x.displayName = x.name;
                            return x;
                        })
                    }
                },
    

    …并将其传递给模板中的表组件:

        <b-table show-empty
                 stacked="md"
                 :items="adjustedEndpoints"
                 :fields="fields"
                 :current-page="currentPage"
                 :per-page="perPage"
                 :filter="filter"
                 :sort-by.sync="sortBy"
                 :sort-desc.sync="sortDesc"
                 :sort-direction="sortDirection"
                 @filtered="onFiltered"
        >
    

    问题是,当我编辑终结点的属性时,我看到它在Vue组件状态中发生了更改,但在重新加载之前,这不会反映在渲染组件中。我猜AdjustedEndPoints()函数不是自动调用的。

    我该怎么解决?

    1 回复  |  直到 8 年前
        1
  •  2
  •   Boris K    8 年前

    发现了问题。

    在Vuex存储中的初始状态下,我没有声明“endpoints”属性。

    这就是整个问题。

    推荐文章