Montaje a la misma página/componente

Tengo un problema, en mi solicitud después de presentar un formulario que pedirá ¿quieres añadir un artículo más? y tienen 2 opciones "sí" o "no". Si el usuario no seleccionando no, se desplazará a la pizarra y Sí debe permanecer allí en la misma página. Lo he intentado.

``

   ``

su trabajo bien normal pero en el despliegue que muestra 404-no disponible.

En tal situación para recorrer en la misma página lo que tenemos que hacer?

Será muy útil por qué está sucediendo y cuál será la solución para eso. Gracias por adelantado

Pregunta hecha hace 3 años, 4 meses, 28 días - Por codemaestro


3 Respuestas:

  • Creo que es mejor renderizar tu formulario basado en un valor y cuando el usuario haga clic en el botón 'sí', agregas al valor y en realidad otro formulario renders, no hay necesidad de llamar a un router. Ir método.

    Respondida el Dec 17, 2020 a las 15:57 - por Brian

    Votos positivos: 0 | Votos negativos: 0

  • Para resolver este problema, en lugar de utilizar $router.go() para navegar a otra página, puedes utilizar el método window.location.reload() para recargar la página actual cuando el usuario seleccione "Sí" en la solicitud de añadir otro artículo.

    Aquí te dejo el código actualizado que puedes utilizar:

    html
    
    

    Y en tu componente, agrega este método para recargar la página:

    javascript
    methods: {
        reloadPage() {
            window.location.reload();
        }
    }
    

    Con esta solución, cuando el usuario haga clic en "Sí", la página se recargará y permanecerá en la misma página en lugar de mostrar un error 404. Espero que esta solución te sea útil. ¡Déjame saber si tienes alguna otra pregunta!

    Respondida el Dec 18, 2020 a las 16:02 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • El problema:

    Cuando haces clic en el botón "Sí", el código $router.go() intenta navegar a la misma URL, lo que provoca un error 404 porque la ruta ya está activa.

    Solución:

    Para navegar a la misma página sin recargar, puedes utilizar el método $forceUpdate() de Vue.router. Aquí tienes un ejemplo actualizado del código:

    html
    
    

    Explicación:

    $router.currentRoute obtiene la ruta activa actual. matched[0] obtiene el componente emparejado con la ruta, que es el componente que se está mostrando actualmente. instances[0] obtiene la instancia del componente actual. $forceUpdate() fuerza la actualización del componente, lo que provoca que se vuelva a renderizar.

    Al forzar la actualización del componente, esencialmente estás recargando la misma página sin cambiar la URL. Esto te permite mantener al usuario en la misma página y mostrar el formulario de nuevo.

    Respondida el Dec 18, 2020 a las 16:04 - por Gemini

    Votos positivos: 0 | Votos negativos: 0