清理后尝试访问Vuex状态

时间:2020-02-19 18:27:56

标签: vue.js vuex

我在注销时清理Vuex状态并继续尝试从组件访问状态时遇到问题。

  1. 组件使用状态中的对象
    <custom-card
        color="green"
        :name="this.author.name"
        :surname="this.author.surname"
    >
  1. 使用getter从“计算”中获取“作者”对象:
    computed: {
        ...mapGetters({
            author: 'author'
        }),
    },
  1. 当我尝试注销带有卡片组件的页面时,我被重定向到登录页面(按预期方式),同时在控制台中出现错误:
    vue.runtime.esm.js?2b0e:619 [Vue warn]: Error in render: "TypeError: Cannot read property 'name' of null"
    vue.runtime.esm.js?2b0e:1888 TypeError: Cannot read property 'name' of null

对我来说很明显,“作者”在注销时设置为null,这就是发生错误的原因。但尚不清楚为什么会这样。我以为在单击注销按钮后,vue-router应该将我重定向到登录页面,此后上一页的内容无关紧要。

如何避免这些错误?

更新。我认为可以在Vuejs文档的“ {Rectivity in Depth””文章中找到有关此问题的答案:

由于Vue不允许动态添加根级反应性属性,因此您必须通过预先声明所有根级反应性数据属性(即使值为空)来初始化Vue实例。 如果您未在data选项中声明消息,Vue将警告您渲染功能正在尝试访问不存在的属性。

0 个答案:

没有答案