Pinia 踩坑记录
1、子store中如何使用router
以user.ts 这个store为例
错误写法
// 说明:不能使用插件实例化router,否则获取不到router的函数
// 错误写法如下:import { useRouter } from "vue-router"actions:{login(){const router = useRouter()// 不信你在这里打印router,最终得到的值是undefined console.log(router) // undefinedrouter.push('/') // router都取不到更别说跳转了}}
正确写法
import router from "@/router"; // 引入自己封装的路由 actions:{login(){console.log(router) // 可以获取到router的实例对象router.push('/') // 可以跳转}}
2、router.ts中如何使用store
必须在函数体中实例,否则会报未能找到pinia,让你安装pinia的警告
错误写法
import { useUserStore } from "@/store";
const useUser = useUserStore();router.beforeEach((to, from, next) => {console.log(useUser.loginForm) // 这里是取不到store的
});
正确写法
import { useUserStore } from "@/store";router.beforeEach((to, from, next) => {const useUser = useUserStore();console.log(useUser.loginForm) // 这样就可以取出store的值了
});