Estaba tratando de cambiar un parámetro de ruta con el enrutador Vue. Mi ruta es la siguiente:
/document/:id?/:lang?/editId y lang (idioma) son los parámetros. Quiero cambiar el parámetro lang usando JavaScript sin alterar el resto de la ruta. Intenté aplicar la siguiente solución (que se encuentra aquí ). La solución se hizo para Vue 2 y no para 3. Así que traté de hacer una versión actualizada. Este es mi código:
let params = this.$route.params params.lang = 'en' this.$router.push({params:params})Gracias por adelantado.
Es una mala manera de cambiar su parámetro de ruta de esta manera.
En su lugar, reemplace su ruta con el mismo name , la misma id , pero un lang diferente:
this.$router.replace({ name: this.$route.name, params: { id: this.$route.params.id, lang: 'en' // or whatever you want } })No olvide estar atento a los cambios de ruta si es necesario:
watch: { $route(to, from) { // if anything needs to be done when the route changes } }