Vue引入pinia store文件,但实际使用了其他pinia store文件定义的同名变量或方法

15 阅读1分钟

这个问题实际表现为,在cat.vue中引入了cat.ts文件,在dog.vue中引入了dog.ts,然而实际使用时,cat.vue调用call方法,call方法返回了 “汪”,并不是想要的 “喵”

//cat.ts
export const cat = defineStore("cat", () => {
    function call(): string{
        return "喵"
    }
})
export const dog = defineStore("cat", () => {
    function call(): string{
        return "汪"
    }
})

问题就在于defineStore时,第一个参数重名,pinia文档中要求第一个参数必须是一个独一无二的名字

这个名字 ,也被用作 id ,是必须传入的, Pinia 将用它来连接 store 和 devtools。为了养成习惯性的用法,将返回的函数命名为 use... 是一个符合组合式函数风格的约定