【问题标题】:vuex error with quasar $store.auth is undefinedquasar $store.auth 的 vuex 错误未定义
【发布时间】:2022-01-10 09:01:48
【问题描述】:

我正在尝试将 vuex 与 Quasar 一起使用。我创建了一个如下的身份验证模块。

// src/store/auth/index.js
import { api } from 'boot/axios';

export default {
    state: {
      user: null,
    },
    getters: {
      isAuthenticated: state => !!state.user,
      StateUser: state => state.user,
    },
    mutations: {
      setUser(state, username){
        state.user = username
      },
      LogOut(state){
        state.user = null
      },
    },
    actions: {
        LOGIN: ({ commit }, payload) => {
            return new Promise((resolve, reject) => {
              api
                .post(`/api/login`, payload)
                .then(({ data, status }) => {
                  if (status === 200) {
                    commit('setUser', data.refresh_token)
                    resolve(true);
                  }
                })
                .catch(error => {
                  reject(error);
                });
            });
        },
    }
}

我在商店里导入的

// src/store/index.js
import { store } from 'quasar/wrappers'
import { createStore } from 'vuex'
import auth from './auth'

export default store(function (/* { ssrContext } */) {
  const Store = createStore({
    modules: {
      auth:auth
    },

    // enable strict mode (adds overhead!)
    // for dev mode and --debug builds only
    strict: process.env.DEBUGGING
  })

  return Store
})

我将它导入 MainLayout 以检查用户是否已登录。

// src/layouts/MainLayout
<template>
</template>

<script>
import { ref, onMounted } from 'vue'
import packageInfo from '../../package.json'
import { useStore } from 'vuex'

export default {
  name: 'MainLayout',
  setup () {
    const $store = useStore;
    const connected = ref(false);

    function checkLogin(){
      //console.log($store)
      return connected.value = $store.auth.isAuthenticated
    };

    onMounted(()=> {
      checkLogin();
    });

    return {
      appName: packageInfo.productName,
      link:ref('dashboard'),
      drawer: ref(false),
      miniState: ref(true),
      checkLogin,
    }
  }
}
</script>

但每次,我都会得到同样的错误:

$store.auth 未定义

我尝试按照类星体文档进行操作,但我做不到。谁能告诉我我做错了什么?

谢谢。

【问题讨论】:

    标签: vuex quasar-framework quasar


    【解决方案1】:

    有人帮我找到了解决方案。我的错误是写了const $store = useStore 而不是const $store = useStore()。谢谢

    【讨论】:

      猜你喜欢
      • 2020-01-06
      • 1970-01-01
      • 1970-01-01
      • 2021-05-26
      • 2023-02-09
      • 1970-01-01
      • 2020-05-22
      • 2020-10-05
      • 2020-06-15
      相关资源
      最近更新 更多