Estoy desarrollando mi propio sitio web de blog con Next.js y transcripciones de MD. Tengo un problema con los enlaces ancla. Todos mis títulos <h1> se convierten en enlaces de anclaje usando el siguiente componente de enlace:
<Link passHref href={"#" + anchor.href}>{anchor.name}</Link> De esta manera, los enlaces de anclaje funcionan bien. Pero cuando entro en un enlace de anclaje y luego presiono el botón Atrás (desde el navegador o el enrutador. Atrás ()) en lugar de regresar a la página de la que vine, simplemente regresa al enlace sin el enlace de anclaje # o a el último enlace ancla en el que hice clic.
¿Hay alguna manera de que pueda retroceder en cascada sin necesidad de pasar a la última página? Si vine de una publicación de blog X a una publicación de blog Y, ¿cómo podría retroceder hasta llegar a esta publicación X? Pensé en usar el enrutador de reacción para hacer este tipo de cascada, pero no sé si funcionaría.
Aquí está el sitio web , intentaré poner la última versión en línea hasta que publique esto.
La forma en que hago router.back es esta:
// The router import { useRouter } from 'next/router'; const router = useRouter(); // the JSX <div variants={slideButtonDown} style={{margin: ".5rem 0"}}> <CustomButton description='Return to Blog page' text='' icon{ButtonIcon.arrowBack} onClick={() => {router.back()}}/> </div>Si alguien tiene alguna idea de cómo podría mejorarlo, sería de gran ayuda
OBS: uso un sitio web generado estáticamente con accesorios y rutas estáticas.
El comportamiento predeterminado del componente Enlace es
pushuna nueva URL en la pila de historial. Puede usar el apoyo dereplacepara evitar agregar una nueva entrada, como en el siguiente ejemplo:
<Link passHref href={"#" + anchor.href} replace>{anchor.name}</Link>ref: https://nextjs.org/docs/api-reference/next/link#replace-the-url-instead-of-push