【问题标题】:Vue getter property undefinedVue getter 属性未定义
【发布时间】:2020-04-30 02:29:03
【问题描述】:

我有状态 pages 从 api 获得

const state = () => ({
  info: [],
  pages: []
})

和Getter

const getters = {
  // HomePage_Getters
  HomeAdvantages(state) {
    return state.pages.find((page) => (page.template = 'home')).home_advantages
  }
}

在 vue 页面上

        <div>
          {{ HomeAdvantages }}
        </div>
...
  computed: {
    ...mapGetters({ HomeAdvantages: 'modules/general/HomeAdvantages' })
  },

在页面刷新时我得到了

无法读取未定义的属性“home_advantages”

但在状态 pages 属性存在

我该如何解决这个问题?

我将不胜感激,寻求帮助

【问题讨论】:

    标签: vue.js vuex getter


    【解决方案1】:

    如果pages 属性为空,则state.pages.find((page) =&gt; (page.template = 'home')) 可能返回undefined。 在您的代码中,您希望从find 结果中获得home_advantages。 您的代码应如下所示:

    var page = state.pages.find((page) => (page.template == 'home'));
    if (!page) {
       return null;
    }
    return page.home_advantages
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-03
      • 2019-09-08
      • 2019-04-29
      • 2021-11-19
      • 2020-10-27
      • 2019-01-30
      • 1970-01-01
      • 2012-09-09
      相关资源
      最近更新 更多