问题复现
我请求1:获得了第一页四个数据
我请求2:获得了第二页四个数据
但,这四个数据竟然同时放进了一个state里
可以看出:上边重复了一遍
究其原因
他们的id是相同的,我在store文件里写的是
export const useItemStore = defineStore<string,State,{},Actions>('items',{})
解决办法
改写成高阶函数:
所以我在引用的时候传入一个不唯一的值不就好了?
const itemStore = useItemStore(`items-${props.startData}`)
文档说明
Pinia 是一个状态管理库,它允许您在 Vue.js 应用程序中定义和使用多个独立的状态存储。每个状态存储都有一个唯一的 ID,这个 ID 可以在全局范围内用于访问这个状态存储。如果您在使用 Pinia 时遇到了 ID 的问题,可能是由以下原因导致的:
- 重复的 ID:Pinia 要求每个状态存储都有一个唯一的 ID,如果您在定义状态存储时使用了重复的 ID,会导致冲突。请确保每个状态存储都有不同的 ID。
- ID 的格式问题:Pinia 要求状态存储的 ID 必须是字符串,并且只能包含 ASCII 字母、数字和下划线。如果您的 ID 不符合这个要求,可能会导致问题。请检查您的 ID 是否符合格式要求。
- 未注册的 ID:如果您在应用程序的其他地方使用了一个未注册的状态存储 ID,Pinia 将无法找到这个状态存储,从而导致问题。请确保您的应用程序中所有的状态存储 ID 都已经注册。