Vue getter属性未定义

时间:2020-01-13 11:15:59

标签: vue.js vuex getter

我具有从api获取的状态页面

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

字母

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”

但是在状态页面中存在

我该如何解决?

我将不胜感激,寻求帮助

1 个答案:

答案 0 :(得分:1)

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

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