Actualmente estoy trabajando en un proyecto de Vue 3.
Usar this.$router.push({}) no parece funcionar en la tienda Pinia.
También intenté importar useRouter --> import { useRouter } from "vue-router"; para simplemente usar router.push, pero aún así nada parece funcionar.
No se cual puede ser el problema o que debo usar para navegar mis rutas desde las acciones en la tienda de Pinia.
import { defineStore } from "pinia"; import axios from "axios"; export const SignupStore = defineStore("signup", { state: () => ({ fullName: "", dob: "", email: "", password: "", passwordConfirm: "", gender: "", program: "", genderOptions: ["Male", "Female"], degreePrograms: ["Degree program", "HND program", "Masters program"], isSignupCorrect: false, }), actions: { async signup() { let dob = new Date(this.dob).toISOString().substring(0, 10); let gender = this.gender.substring(0, 1); let program = this.program; if (program == "Degree program") { program = "De"; } else if (program == "HND program") { program = "Hn"; } else { program = "Ms"; } console.log(dob); console.log(program); await axios .post("register/", { full_name: this.fullName, email: this.email, password: this.password, gender: gender, dob: dob, program: program, }) .then((response) => { console.log('response status is ' + response.status) if (response.status == 201) { router.push({ name: "AdmissionDashboard" }); } }) .catch((error) => { if (error.response) { console.log("signup error traced"); } }); }, }, });El único lugar donde necesita importar vue-router es en el archivo de su enrutador.
Luego puede usarlo en cualquier parte de la aplicación, importando SU archivo de enrutador (que implementa vue-router).
Entonces, todo lo que necesita hacer en su tienda es importar su enrutador, luego llamar al método push, como lo está haciendo, y debería funcionar.