【问题标题】:How can I get my Vuex state to initialise within my laravel 5.4 application如何让我的 Vuex 状态在我的 laravel 5.4 应用程序中初始化
【发布时间】:2017-03-14 06:07:24
【问题描述】:

我正在为应用程序使用 Laravel 5.4 和 Vuex 2.2.1。我有一个包含以下代码的 store.js 文件。

import Vue from 'vue';
import Vuex from 'vuex';

Vue.use(Vuex);

export const store = new Vuex.Store({
    state: {
        testing: 0
    },

    getters: {
        getTest: state => {
            return state.testing + 1;
        }
    }
});

我有一个主 js 文件(laravel 5.4 附带的那个),它有以下内容。我在这里传递 Vuex 实例

require('./bootstrap');;


import VueRouter from 'vue-router';
import { routes } from './routes.js';
import { store } from './libs/store';


Vue.component('fd-auth', require('./components/Auth.vue'));
Vue.component('fd-app', require('./components/App.vue'));



Vue.use(VueRouter);

const router = new VueRouter({
                    routes: routes,
                    mode: 'history'
                });

const app = new Vue({
    el: '#app',
    router: router,
    store
});

我可以看到 Vuex 实例已加载到我的浏览器中。

但是,当我尝试访问商店中的数据时,我收到“无法读取已定义属性”错误。看来我的状态仍未定义。

我已经花了几个小时在这上面,只是无法理解它。有人可以帮助我并告诉我我做错了什么。

这就是我在组件中访问它的方式。

<script>
import RevealVisitor from './modals/VisitorReveal.vue';

export default{

    data: () => {

        return {
            storeapp: 'mowgli'
        }
    },
    methods: {
        testStore: () => {
            console.log(this.$store.getters.getTest);

        }
    },

    components: {
        'fd-reveal-visitor': RevealVisitor
    }
}
</script>

【问题讨论】:

    标签: laravel-5 vuejs2 vuex


    【解决方案1】:

    当箭头语法与方法一起使用时,this 的值不是component instance,所以this.$store 将是未定义的。

       methods: {
            testStore: () => {
                console.log(this.$store.getters.getTest); // `this` is window object here.
    
            }
        },
    

    为了避免这种使用 out 箭头语法的声明方法

    methods: {
        testStore() {
            console.log(this.$store.getters.getTest);
    
        }
    },
    

    【讨论】:

    • 兄弟!姐姐!我不管你是不是火星人,你救了我!非常感谢你。我永远也想不通。非常感谢。
    猜你喜欢
    • 2018-07-04
    • 2018-12-01
    • 2020-08-07
    • 2019-10-30
    • 1970-01-01
    • 1970-01-01
    • 2018-06-30
    • 2021-04-05
    • 1970-01-01
    相关资源
    最近更新 更多