#reactjs #next.js
#reactjs #next.js
Вопрос:
Я хочу реализовать некоторое условное поведение scrollTo в зависимости от того, осуществляется ли прямой доступ к странице путем ввода URL-адреса в браузере или когда страница отображается в результате навигации по маршруту через <Link>
или router.push()
Есть ли способ различать два в Next.js ?
РЕДАКТИРОВАТЬ 1:
Благодаря некоторым подсказкам в комментариях я нашел один способ, но не уверен, что он надежный:
useEffect(() => {
if (Object.keys(router.components).length == 2) {
console.log("Is fullpage refresh");
} else {
console.log("Is is route change");
}
}, []);
Комментарии:
1. Да, когда вы впервые обращаетесь к странице по URL, router . запрос не определен. Вы можете это проверить.
2. Привет @VicenteC Я пробовал проверять с
useEffect(() => { console.log(router); }, []);
помощью запроса, но в обоих случаях это пустой объект. Однако существует router.components, который выглядит как его отслеживание, если другие страницы были отображены ранее.