import { useRouter } from "next/navigation";
const router = useRouter()
const refreshData = () => {
router.replace(router.asPath);
}
я пытался использовать следующий/маршрутизатор, но не работал
@YoussoufOumar, согласно документам, вы не можете импортировать каталог приложения из next/navigation
. См.: beta.nextjs.org/docs/…
Да, именно поэтому я сказал «если вы не используете новую папку app
» @brandonscript :)
@YoussoufOumar О, глупый я, я неправильно это понял. Вы правы, похоже, что OP не использует каталог приложения, несмотря на то, что я нашел этот вопрос в очереди редактирования, которая обновила заголовок, чтобы показать это 😄
В новой схеме каталогов приложений Next.js 13 useRouter
работает иначе. Вместо этого вам понадобится usePathname
: https://beta.nextjs.org/docs/upgrade-guide#step-5-migrating-routing-hooks
Стоит отметить, что существует также открытая проблема, когда при определенных обстоятельствах useRouter
и usePathname
не работают должным образом (особенно в отношении router.events).
Но также, как указал @YoussoufOumar, это не похоже на то, что вы используете каталог приложений, поэтому вы хотите импортировать из next/router
.
Если вы не используете новую папку
app
, почему бы не использоватьimport { useRouter } from 'next/router'
?