首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >页面重载导致Vuex getter返回undefined

页面重载导致Vuex getter返回undefined
EN

Stack Overflow用户
提问于 2019-02-06 01:54:52
回答 3查看 804关注 0票数 0

使用Vue.js (用于FE的验证)。

页面重载会导致Vuex中的getter在从存储中提取所需数据时失败。getter返回undefined。代码可以在GitHub上找到:https://github.com/tineich/timmyskittys/tree/master/src

有关此问题的详细信息,请访问timmyskittys.netlify.com/stage1。此页包含有关该问题的完整信息以及有关如何查看该问题的说明。

请注意,问题描述中提到了www.timmyskittys.com。这是主站点。timmyskittys.netlify.com是我的测试站点。因此,它们在所有意图和目的上都是相同的。但是,我在Netlify网站上演示了这个问题。

EN

回答 3

Stack Overflow用户

发布于 2019-02-06 02:23:03

我在你提到的网站上看到了完整的一期。这是一种普遍的情况。

例如,对于猫的详细信息,页面url:www.timmyskittys.com/stage2/:id

现在,在Per-Route Guard beforeEnter()中,您可以在存储中设置cat-id。然后从您的组件中使用cat-id调用api (从getters读取)

票数 0
EN

Stack Overflow用户

发布于 2019-02-07 02:46:14

我找到了我的问题的解决方案:

我必须移动对操作的调用,该操作调用将.json文件(dbdata.json)加载到App.vue中的computed()的变体。这最初是在Stage1.vue中完成的。

感谢所有人的回复。

票数 0
EN

Stack Overflow用户

发布于 2020-08-10 04:12:11

我也遇到了同样的问题,我的“解决方案”就是做一个计时器,所以给商店一点时间把事情做好,就像这样:

代码语言:javascript
运行
复制
<v-treeview
    :items="items"
    :load-children="setChildren"
  />
</template>

<script>
import { mapGetters } from 'vuex'

const pause = ms => new Promise(resolve => setTimeout(resolve, ms))

export default {
  data () {
    return {
      children: []
    }
  },
  computed: {
    ...mapGetters('app', ['services']),
    items () {
      return [{
        id: 0,
        name: 'Services',
        children: this.children
      }]
    }
  },
  methods: {
    async setChildren () {
      await pause(1000)

      this.children.push(...this.services)
    }
  }
}
</script>

尽管这并不理想,但它是有效的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54540343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档