简体   繁体   English

Vuex 返回“TypeError:无法读取未定义的属性‘getters’”

[英]Vuex returning “TypeError: Cannot read property 'getters' of undefined”

Vuex seems to not be able to find my getter for my loading_state. Vuex 似乎无法为我的 loading_state 找到我的 getter。

However, the vuex state and getter still registers in the Vue developer tools.但是,vuex state 和 getter 仍然在 Vue 开发者工具中注册。 I just cannot seem to call them in my application.我似乎无法在我的应用程序中调用它们。

I've tried changing variable names, calling the getter via different methods.我尝试更改变量名称,通过不同的方法调用 getter。

loading_store.js loading_store.js

import Vue from "vue";
import Vuex from "vuex";

Vue.use(Vuex);

export const loading_store = new Vuex.Store({
    state: {
        loading: true
    },
    mutations: {
        setFalse(state) {
            state.loading = false;
        },
        setTrue(state) {
            state.loading = true;
        }
    },
    getters: {
        isLoading: state => {
            return state.loading;
        }
    }
});

App.vue应用程序.vue

<template>
    <div id="app">
        <Navigation />
        <loading-spinner v-if="isLoading" />
        <router-view class="m-3" />
    </div>
</template>

<script>
import Navigation from "@/components/Navigation";
import LoadingSpinner from "@/components/LoadingSpinner";
import { mapGetters } from "vuex";

export default {
    name: "app",
    components: {
        LoadingSpinner,
        Navigation
    },
    metaInfo: {
        title: "SnowStats"
    },
    computed: {
        ...mapGetters(["isLoading"])
    }
};
</script>

main.js main.js

import Vue from "vue";
import App from "./App.vue";
//////////
import { loading_store } from "./state/loading_store";

/////////

new Vue({
    state: loading_store,
    router,
    render: h => h(App)
}).$mount("#app");

Error messages:错误信息:

    vue.runtime.esm.js?2b0e:619 [Vue warn]: Error in render: "TypeError: Cannot read property 'getters' of undefined"

    found in

    ---> <App> at src/App.vue
           <Root>


    TypeError: Cannot read property 'getters' of undefined
        at VueComponent.mappedGetter (vuex.esm.js?2f62:896)
        at Watcher.get (vue.runtime.esm.js?2b0e:4473)
        at Watcher.evaluate (vue.runtime.esm.js?2b0e:4578)
        at VueComponent.computedGetter [as isLoading] (vue.runtime.esm.js?2b0e:4830)
        at Object.get (vue.runtime.esm.js?2b0e:2072)
        at Proxy.render (eval at ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"34f9cbf8-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/App.vue?vue&type=template&id=7ba5bd90& (app.js:947), <anonymous>:13:11)
        at VueComponent.Vue._render (vue.runtime.esm.js?2b0e:3542)
        at VueComponent.updateComponent (vue.runtime.esm.js?2b0e:4060)
        at Watcher.get (vue.runtime.esm.js?2b0e:4473)
        at new Watcher (vue.runtime.esm.js?2b0e:4462)

I believe the correct syntax is我相信正确的语法是

new Vue({
    store: loading_store,
    router,
    render: h => h(App)
}).$mount("#app");

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 TypeError:无法读取未定义的firebase和vuex的属性“ 0” - TypeError: Cannot read property '0' of undefined firebase and vuex nuxt.js Vuex Vuejs无法读取未定义的属性'getters' - nuxt.js Vuex Vuejs Cannot read property 'getters' of undefined NativeScript Vue - VueX 不工作:无法读取未定义的属性获取器 - NativeScript Vue - VueX not working: cannot read property getters of undefined 类型错误:无法读取未定义 @vue/test-utils 的属性“getters” - TypeError: Cannot read property 'getters' of undefined @vue/test-utils 无法访问 Vuex 模块获取器 - 无法读取未定义的属性“获取器”” - Can't access Vuex Module Getter - Cannot read property 'getters' of undefined" 未捕获的类型错误:从 js 模块导入存储时无法读取未定义的属性“getters” - Uncaught TypeError: Cannot read property 'getters' of undefined when importing store from js module 未捕获的TypeError:无法读取未定义的属性&#39;x&#39;,函数返回Null - Uncaught TypeError: Cannot read property 'x' of undefined, function returning Null React JSX返回TypeError:无法读取未定义的属性 - React JSX returning TypeError: Cannot read property of undefined 无法读取未定义 VUEX 的属性“提交” - Cannot read property 'commit' of undefined VUEX Vuex与Jest-无法读取属性 <getterName> 未定义 - Vuex with Jest - Cannot read property <getterName> of undefined
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM