quasar $store.auth 的 vuex 错误未定义

Posted

技术标签:

【中文标题】quasar $store.auth 的 vuex 错误未定义【英文标题】:vuex error with quasar $store.auth is undefined 【发布时间】: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 (/*  s-s-rContext  */) 
  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 未定义

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

谢谢。

【问题讨论】:

【参考方案1】:

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

【讨论】:

以上是关于quasar $store.auth 的 vuex 错误未定义的主要内容,如果未能解决你的问题,请参考以下文章

未检测到 vuex 存储 - Quasar

为啥 vuex 在 Quasar App 中返回对象而不是数组?

Quasar 框架与 VueX

如何使用 Quasar 框架访问 Vuex 存储模块操作中的 Vue 路由器?

Vuex 突变:使用 ES6 语法解构状态参数(使用 quasar 框架)

如何在 Vuex 商店模块状态中访问“this”