next.js 无法在Reactjs中使用路由器,push

lf5gs5x2  于 2023-01-20  发布在  React
关注(0)|答案(2)|浏览(182)

我正在使用Reactjs和nextjs,现在我尝试刷新页面(使用路由),但我得到以下错误

Error: No router instance found. you should only use "next/router" inside the client side of your app.

以下是我当前的代码

const Post = ({ post, blogs }) => {
    const routers = useRouter();
    var spath=routers.asPath;
    routers.push({ pathname: spath, query: '' });
})
mm5n2pyu

mm5n2pyu1#

你可能在一个功能组件或钩子之外使用了路由器。将Post转换为钩子,它应该可以工作。

snvhrwxg

snvhrwxg2#

如果你在应用程序加载或任何数据更改时运行此代码,你应该在useEffect钩子内执行此操作,因为在服务器上呈现应用程序时,router不会在那里,useEffect只在浏览器内运行。

相关问题