ZBLOG

import { defineStore } from "pinia"; import { reqLogin } from '@/api/user'; import type { LoginForm, loginResponseData } from "@/api/user/type"; import type { UserState } from "./type/type"; // 引入本地存储文件 import { SET_TO

这段代码的问题在于 menuRoutes 属性的类型定义与实际赋值不符合,导致了类型错误。

根据报错信息,UserState.menuRoutes 的类型应该是一个数组,其中元素类型为 RouteRecordRaw。而实际上我们将常量路由数组 constantRoute 直接赋值给了 menuRoutes 属性,因此 TypeScript 推断出 menuRoutes 的类型为 (typeof constantRoute)[],即包含多个对象的数组。

要解决这个问题,可以将 UserState.menuRoutes 的类型改为 [RouteRecordRaw](注意方括号的位置),表示只包含一个元素的数组,并且该元素是一个 RouteRecordRaw 类型对象。修改后的代码如下:

import { defineStore } from "pinia";
import { reqLogin } from '@/api/user';
import type { LoginForm, loginResponseData } from "@/api/user/type";

import type { UserState } from "./type/type";
// 引入本地存储文件

import { SET_TOKEN, GET_TOKEN } from "@/utils/token";
// 引入路由(常量路由)
import { constantRoute } from "@/router/routes";
let useUserStore = defineStore('User', {
    // 小仓库 存储数据的地方
    state: (): UserState => {
        return {
            token: GET_TOKEN(),//用户唯一标识
            menuRoutes: [constantRoute], // 修改此处
        }
    },
    actions: {
        async login(loginForm: LoginForm): Promise<boolean> {
            const res = await reqLogin(loginForm)
            if (res.code === 200) {
                // 登录成功,将 token 存入本地存储
                SET_TOKEN(res.data.token)
                // 将 token 存入 store
                this.token = res.data.token
                return true
            } else {
                return false
            }
        }
    },
})

export default useUserStore;

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=4493

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?