如何在Vue JS中访问存储值到组件

时间:2018-08-29 07:03:43

标签: vue.js vuejs2 vue-router

这是我的store.js

printf "%s\n" "uname -r" date "ls this_file_does_not_exist" |\
  ssh -L 5432:localhost:5432 myuser@myremotehost ;\
  printf "EXIT STATUS of the last command, executed remotely with ssh is %d\n" $?

4.4.0-119-generic
Wed Aug 29 02:55:04 EDT 2018
ls: cannot access 'this_file_does_not_exist': No such file or directory
EXIT STATUS of the last command, executed remotely with ssh is 2

但是当我在display.vue中调用{{state.isLoggedIn}}时,我没有得到值。

在display.vue中,我使用

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

Vue.use(Vuex)

export default new Vuex.Store({
    state: {
        isLoggedIn: !!localStorage.getItem('token'),
        isLog : !!localStorage.getItem('situation')
    },
    mutations: {
        loginUser (state) {
            state.isLoggedIn = true
            state.isLog = true
        },
        logoutUser (state) {
            state.isLoggedIn = false
            state.isLog = false
        },
    }
})

但是当我这样做时,我得到了错误。请任何人都可以帮助解决问题。

1 个答案:

答案 0 :(得分:0)

您不需要将商店导入到组件中。相反,您应该使用this.$store访问它。

要访问存储状态,更好的(也是推荐的)方法是在组件内map the state

在您的示例中,它应该类似于:

import { mapState } from 'vuex'

export default {
    ...
    computed: {
        ...mapState(
            isLoggedIn: 'isLoggedIn'
        )
     }
}

在您的模板中,不需要this。只需通过属性名称调用即可:

{{ isLoggedIn }}